Шаблоны ссылок JavaScript/CSS/изображения

Мне было интересно, есть ли у кого-нибудь предпочтение ссылаться на файлы images/css или javascript на своих сайтах?

Причина, по которой я спрашиваю, заключается в том, что клиент хочет разместить сайт, который мы создали в виртуальном каталоге, на сайте обычно должны быть изменены его ссылки на файлы - вплоть до URL-адреса (... образа) в файлах CSS потому что мы обычно разрабатываем сайт так, как если бы он был корневым приложением - иногда клиент не знает, где он собирается разместить его до дня до даты выпуска!

Используя ASP.NET, мы можем обойти проблему в формах, ссылаясь на элементы, используя "~" при использовании компонентов сервера runat или метод Url.Content при использовании ASP.NET MVC...

Итак, есть ли хорошие решения для хранения общих ссылок на файлы или мы сталкиваемся с необходимостью менять ссылки на файлы каждый раз?

Ответ 1

Изображения (например, background-url) в CSS всегда ссылаются относительно файла css.

Пример:

/img/a.gif
/css/c.css

Чтобы ссылаться на a.gif в файле css, вы всегда должны ссылаться на него как таковое ../img/a.gif, не имеющее отношения к тому, где находится страница или как она переписывается

Ответ 2

Мне нравится сохранять все мои изображения стиля в подкаталогах расположения таблицы стилей, например:

Site- > Style- > Common.css
Сайт- > Стиль- > Images- > Background.png

Таким образом, вы устраняете проблемы с помощью "вверх" каталогов в CSS, которые запутываются или вам нужно легко перемещать CSS, поскольку все они содержатся в одном каталоге.

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

Ответ 3

Вы по-прежнему можете использовать относительные адреса с навигацией "вверх":

например. В /styles/main.css для /images/bg.png:

background-image: url('../images/bg.png');

Или в /path/to/this/page.html для /index.html

<a href="../../../index.html">Home</a>

Возможно, он не самый привлекательный, но он должен работать.