2015-07-10 2 views
2

У меня есть приложение grails 2.4.3, в котором используется плагин рендеринга 1.0.0 и конвейер ресурсов: 1.9.9. Я могу успешно генерировать PDF из GSP, ноНевозможно загрузить CSS с помощью графического плагина grails

  • Там нет стиля, поэтому он выглядит как мусор
  • Каждая ссылка CSS в GSP приводит к java.io.IOException: Stream closed, чтобы показать в журналах

Когда я комментирую все ссылки CSS, ошибок нет, но он по-прежнему выглядит как мусор. Я считаю, что проблема stream closed связана с тем, что синтаксический анализатор XHTML не может загрузить файл CSS. Ссылки на CSS выглядят так:

<link rel="stylesheet" href="/Invoicer/assets/invoicer.css?compile=false" /> 

Когда я загружаю этот URL-адрес в браузере, файл CSS успешно возвращается и отображается.

Я также использую Spring Security и думал, что, возможно, это проблема аутентификации. Я удалил все фильтры в Config.groovy, так это выглядит, как этот

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
    '/**':       ['permitAll'] 
] 

, но это не помогло. Есть идеи? Благодаря!

ответ

0

Вот ответ, но он уродлив. Я заметил, что, указав полный путь к CSS действительно сделал работу:

<link rel="stylesheet" href="http://localhost:9090/Invoicer/assets/bootstrap.css?compile=false" />

Теперь, поскольку я использую активы трубопроводные, я должен сделать актив-конвейерный использовать абсолютный URL в Config.groovy:

grails.assets.url = "http://localhost:9090/Invoicer/assets/"

Не очень, но он будет работать в настоящее время.

2

После повторного прочтения документации, я заметил это:

Механизм визуализации решает все относительные ссылки относительно конфиги собственности grails.serverURL.

Я понял, что serverURL был бы установлен автоматически, но это было не так. Я установил

grails.serverURL = "http://localhost:9090/${appName}"

в Config.groovy , а также

grails.server.port.http = 9090

в BuildConfig.groovy. Также кажется, что механизм компоновки не вызван, поэтому мне пришлось вручную извлекать файлы CSS:

<asset:stylesheet src="invoicer.css" />

Смежные вопросы