Какова оптимальная структура папок для веб-каталога?

9

Я занимался веб-разработкой в ​​течение многих лет, и я всегда делал веб-структуру, подобную этой:

public_html/login.php
public_html/css/login.css
public_html/js/login.js
public_html/img/logo.png

Я видел, как другие люди используют:

styles/login.css
images/logo.png

А потом недавно я узнал, что мой коллега любит:

public_html/a/login.js   - application
public_html/s/login.css  - styles
public_html/i/logo.png   - images
public_html/p/photo1.jpg - photos
public_html/f/menu.swf   - flash

Кроме сохранения одного или двух байтов, есть ли какие-либо преимущества или недостатки любого из этих вариантов? Есть ли лучшая практика для этой концепции?

Сент-Джон Джонсон
источник
По запросу, дополнительные папки: «t» для шаблонов и «x» для xml
Сент-Джон Джонсон
несколько
похожий

Ответы:

6

Я бы придерживался вашей нынешней системы, хотя я могу быть предвзятым, поскольку сам использую примерно одинаковые имена.

Я считаю, что сохранение трехбуквенного имени папки достаточно многословно, чтобы иметь смысл, но достаточно кратко, чтобы мои URL-адреса были аккуратными .

Сокращение каждой папки до одной буквы является излишним, и, как указывает mc10, широко открыто для интерпретации. Например, я бы никогда не выбрал «a» для файлов Javascript: я бы выбрал «b» для «поведения». Я не думаю, что и то, и другое более правильно, просто указывает на то, насколько неоднозначна схема именования.

Хотя использование «стилей» и «изображений» в качестве имен папок прекрасно, я считаю, что гораздо более целесообразно использовать более короткое имя. Подумайте, сколько раз будет указана ссылка на эту папку, в каждом файле, в каждом URL и запросе, и байты начнут складываться. Конечно, я не думаю, что вы увидите реальную экономию полосы пропускания, используя более короткие имена папок, но я возьму каждый бит (и байт), который смогу получить.

Я обычно придерживаюсь этих пар папок:

  • js - файлы Javascript
  • img - файлы изображений
  • CSS - CSS файлы
  • lib - серверные сценарии, которые не производят вывод. Библиотеки, классы и др.
  • doc - двоичные файлы, такие как офисные документы и PDF, которые не являются частью обычной навигации по страницам
Джейкоб Хьюм
источник
2

Папки CSS и JS хороши для отдельного сайта, который может быть статически закодирован (он же только HTML), но это не практично для более крупного сайта, который использует CMS.

CMS используют папки «styles» и «images» в своей собственной структуре папок, просто они обычно находятся в подкаталогах. Это хороший способ размещения контента, который предпочитают многие CMS.

Наличие однобуквенных имен папок сбивает с толку. На первый взгляд, меня бы смутила разница между photos ( p) и images ( i). Использование aдля «приложения» также кажется загадочным.

kevinji
источник
1

Использование папок для css и js, в отличие от отдельных файлов, полностью зависит от объема вашего проекта.

Если у вас есть или вам может понадобиться несколько сценариев или таблиц стилей, то организация их по папкам облегчит обслуживание и управление сайтом.

Если вы все же решите использовать папки, снова, давая эти длинные или короткие имена, это личное предпочтение.

Хотя имена, состоящие из одной буквы, сохраняют байты и могут выглядеть немного аккуратнее, по моему опыту, если на сайте работает больше, чем несколько человек, это может сбить с толку.

ajcw
источник
1

Вы также можете сделать этот метод для.

1-й метод:

  • / I / общее /
  • / Я / макет /
  • / I / Библиотека /
  • / Я / разное / документы / PDF /
  • / Я / разное / документы / CSV /
  • / Я / разное / документы / TXT /

Примечание. Лучше всего, если каждый файл будет обновлен в сводке md5.

Примеры:

  • /i/common/9df48e2cf2d25740e4ba54e8cd73b3a3.png,
  • /i/layout/2b33962041cb835c227bba27424a28af.css,
  • /i/lib/a8a2a48ddaa95527c6d3db763e2b7809.js,
  • /i/misc/docs/pdf/68aafcfe9aa1ab7d83a6ce8df302155e.pdf

2-й метод:

  • / Активы / общие /
  • / активы / шаблоны / template_name /
  • / активы / включает / JS /
  • / Активы / разное / PDF /
  • / Активы / разное / CSV /
  • / активы / разное / TXT /

Примечание: не требуется переименовывать файлы в строки md5, но все пробелы должны быть заменены на тире / -

Примеры

  • /assets/common/uploads/2014/12/company-site-has-been-launched.jpg

3-й метод:

  • / Сайт / файлы /
  • /макет сайта/
  • / Сайт / скрипты /
  • / Сайт / разное / документы / PDF /
  • / Сайт / разное / документы / CSV /
  • / Сайт / разное / документы / TXT /

ЗАМЕЧАНИЯ: В public_html подкаталоге «common» папки вы можете создать новый подкаталог после него и назвать его «uploads / 2014/12 /» для ваших загруженных файлов так же, как WordPress организует ваши загрузки.

js92
источник
1
Мне нравятся ваши примеры структуры папок, однако именование файлов с использованием их хэшей md5 не рекомендуется и, безусловно, не является «лучшим». Изменение файла изображения приведет к изменению его md5, поэтому вам потребуется внести поправки на весь сайт. Вместо этого гораздо безопаснее дать им более запоминающееся имя.
Ричард