URL-адреса в CSS-файлах, нарушенные плагином Grails 1.2.7
Недавно обновил проект Grails до 2.3.7 и подключил плагины к их новейшей версии, в результате чего плагин ресурсов перешел на 1.2.7. Это работало нормально с Grails 2.1.2 и плагином ресурсов 1.2RC3, но теперь это не так:
всякий раз, когда у меня есть файл CSS, который ссылается на что-то через URL-адрес, как это
.checkbox-input-wrap.checked {
background-image: url(/img/uniform-assets/checkbox.png);
}
На веб-странице это приводит к этой ошибке (она оставляет 'resource:/' в начале URL)
ПОЛУЧИТЬ ресурс:/img/uniform-assets/checkbox.png net::ERR_UNKNOWN_URL_SCHEME
1 ответ
Согласно моему комментарию ранее, это не было проблемой для меня, потому что по умолчанию все ресурсы в /images
, /css
а также /js
подаются как специальные ресурсы в Grails, и я тестировал с .png
файл из images
,
Я снова столкнулся с этой проблемой от моего коллеги, что заставило меня подумать дважды.:) В его случае он пытался получить доступ к шрифтам из /fonts
который предоставляется плагином, используемым в приложении.
Перед попыткой ответа ниже я попытался отключить переписывание CSS, добавив следующую конфигурацию:
//Not required
//grails.resources.rewrite.css = false
но это не имело смысла для меня, так как я имел дело с font
ресурс.
В конечном итоге, добавив это как часть Config.groovy
за fonts
сделал трюк. Для вашего случая вам нужно сделать, как показано ниже:
grails.resources.adhoc.includes = ['/img/**']
//If resource served from a plugin
//grails.resources.adhoc.includes = ['/plugins/**', '/img/**']
Если у вас уже есть эта конфигурация, она будет выглядеть примерно так:
grails.resources.adhoc.includes = [
'/images/**', '/css/**', '/js/**', '/img/**'
]
Но, как я уже сказал, вам, возможно, не понадобится добавлять adhoc для существующих ресурсов в приложении Grails.
Продолжай с
grails clean
(чтобы быть на более безопасной стороне)grails run-app
,- Очистить кеш браузера (я бы предпочел режим инкогнито в Chrome, если Chrome используется)
- Ссылка на приложение
Не стоит больше жаловаться на ресурс.