Относительные ссылки на сервер ВНУТРИ CSS?
-
09-12-2019 - |
Вопрос
CssRegistration выполняет огромную работу по ссылке на CSS-файл относительно URL-адреса сайта, на котором вы находитесь.
Что вы делаете внутри CSS-файл?Если я развертываю ресурсы в каталоге /_layouts/images, конечно, /_layouts/images отлично работает на БОЛЬШИНСТВЕ сайтов.Однако иногда встречаются /sites/ в качестве корневого веб-сайта, и в этом случае ссылка должна быть /sites/_layouts/images.
Есть ли хороший способ сделать это?
Решение
URL в файлах CSS всегда относительно сама файла CSS.Если у вас есть активы для ссылки, которые находятся в одном (или закрытии) местоположении (например, в стиле библиотеки или аналогичные), вы можете просто использовать пути относительно файла CSS.
Если вы ссылаетесь на активы из _layouts или _layouts / изображения, которые так же просто.Они настроены как виртуальные папки, которые доступны с любого сайта (поскольку он указывает на файловую систему, а не содержимое базы данных).Так что все эти пути одинаковы:
http://localhost/_layouts/images/logo.png
http://localhost/sites/abc/_layouts/images/logo.png
http://localhost/sites/abc/subsite1/subsite2/_layouts/images/logo.png
.
В вашем файле CSS путь просто: _Layouts / Images / logo.png
Другие советы
ХОРОШО.Итак, если у вас есть такая структура каталогов:
Folder1/
Folder1/images/image1.png
Folder1/css/style.css
(Это может быть внутри любой папки, например:_layouts, _layouts/1033/Styles и т. д.)
Чтобы обратиться к image1.png из style.css, все, что вам нужно сделать в style.css, это:
'../images/image1.png'
«../» в начале будет искать каталог изображений на один уровень выше того места, где находится таблица стилей CSS.Поэтому нет необходимости рассматривать /sites/
проблема здесь, поскольку относительный путь всегда будет определяться на основе местоположения файла style.css.