@ font-face src: url (...) не может определить путь к контексту, который может быть переменной - PullRequest
0 голосов
/ 20 июня 2019

Мой файл CSS имеет этот пользовательский шрифт, используя абсолютный путь для URL.Он отлично работает при пустом пути к контексту по умолчанию:

@font-face {
    src: url('/font/myfont-Regular.woff') format('woff');
}

Веб-приложение развернуто либо в jBoss, либо в Tomcat, и путь к контексту настраивается.Ниже «Азбука» может быть чем угодно.

<jboss-web>
    <context-root>ABC</context-root>
</jboss-web>

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

Я получаю ошибку 404 при загрузке этого пользовательского шрифта, когда задан контекстный путь.Причина для 404 состоит в том, что он пытается загрузить через http://www.example.com/font/myfont-Regular.woff

В то время как он должен загружаться из:
http://www.example.com/ABC/font/myfont-Regular.woff

Но «ABC» (путь к контексту) настраиваетсяна клиентском сайте, и я не смог жестко закодировать его в файле css.
Я пробовал тег "c: url" в файле css, но он не мог быть оценен.(Это понятно) .Файл CSS не будет знать о скриптах JSP либо.

Я бы хотел найти способ загрузить пользовательский шрифт, осознавая "контекстный путь"

1 Ответ

0 голосов
/ 20 июня 2019

Решение вместо внешнего файла CSS, используйте внутренний синтаксис таблицы стилей внутри файла JSP, чтобы знать контекстный путь.Например, вставьте следующий раздел в раздел «head» в вашем JSP.«c: url» будет правильно разрешать путь, включая контекст.

<style> 
   @font-face {
     ....
     src: url("<c:url value='/font/myfont-Regular.woff'/>") format('woff');
   }
</style> 

Теперь, чтобы улучшить возможность повторного использования вышеуказанного внутреннего стиля, еще один прием заключается в использовании файла JSP (или JSPF), единственное содержимое которого выше внутреннего стиля.Тогда это может быть включено, где это необходимо.Он должен иметь расширение «.jsp» или «.jspf», чтобы быть «осведомленным о контексте».

...