Моего Grails структуры проекта:Grails не находя свои ресурсы
my-app/
grails-app/
<mostly typical grails-app structure>
views/
web/
index.gsp
app/
admin/
layouts/
main.gsp
<rest of project structure is like any other Grails app>
Таким образом, вы можете видеть, в то время как, как правило, индекс страница расположена в grails-app/views/index.gsp
, я его на grails-app/views/web/index.gsp
.
Мой application.properties
:
app.grails.version=2.4.2
app.name=my-app
app.context=/
app.version=0.1
Одна часть моего UrlMappings.groovy
:
"/"(view:"/web/index")
Мой main.gsp
расположение:
<!DOCTYPE html>
<html lang="en">
<head>
<title><g:layoutTitle default="MyApp"/></title>
<g:resource dir="css" file="myapp.css" />
<g:layoutHead/>
</head>
<body>
<g:layoutBody/>
<g:resource dir="js" file="myapp.js" />
</body>
</html>
Мои index.gsp
:
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main"/>
</head>
<body>
<h1>Hello!</h1>
</body>
</html>
Когда приложение запускается, и я просматриваю его в браузере, очевидно, что myapp.css
не найден, потому что стиль страницы не соответствует действительности. При просмотре исходного кода страницы я вижу:
<!DOCTYPE html>
<html lang="en">
<head>
<title>MyApp</title>
/css/myapp.css
<meta name="layout" content="main"/>
</head>
<body>
<h1>Hello!</h1>
/js/myapp.js
</body>
</html>
Так это звучит, как Grails принимает ваш app.context
и использует в качестве префикса для всех ресурсов. И поскольку я не правильно что-то подключил, Grails просто переводит мои теги <g:resource>
в открытый текст и распечатывает их в HTML.
Я думаю, мой вопрос: Что мне нужно для того, чтобы Grails мог найти мои ресурсы CSS/JS?
Плагин [Asset Pipeline] (http://grails.org/plugin/asset-pipeline) заменил ресурсы как основное решение Grails для файлов CSS и Javascript. Лично я нахожу его намного лучше, чем плагин ресурсов. –
работает как answere –