目前在我的 Grails 应用程序中,我所有的 CSS/JSS 都在里面 web-app/css
和 web-app/js
分别,我在我的 GSP 中这样引用它们:
<link rel="stylesheet" type="text/css" href="<g:resource dir="css" file="myapp.css" />">
<script src="<g:resource dir="js" file="myapp.js" />"></script>
我正在尝试将它们转换为使用 asset-pipeline
.
所以我添加了compile ":asset-pipeline:1.8.11"
到我的BuildConfig#plugins
部分,然后将我的 CSS/JS 文件移动到适当的位置 grails-app/assets
. 我离开<g:resource>
标记就位。当服务器启动时,我的应用程序的样式完全错误,很明显 Grails 无法在新位置找到我的 CSS/JS 文件。
我需要做什么才能使此转换完整且正确?
最佳答案
您可以使用 Assets 管道标签库:
<asset:stylesheet src="myapp.css" />
<asset:javascript src="myapp.js" />
这将在 grails-app/assets/stylesheets 和 javascripts 中查找您的资源文件。
如果您仍然希望获取相对路径,则需要使用 Assets 管道方法来实现。
Asset Pipeline 在部署时可以改变路径: 例如,在开发环境中,没有资源被缩小和组合,路径类似于 YOUR_APP/assets/myapp.js 。
在生产环境中,路径将变为 YOUR_APP/assets/SOME_HASH_OF_YOUR_MINIFIED_ASSET
因此,要让 Asset Pipeline 告诉您路径,请使用:
${asset.assetPath(src: 'myapp.js')}
${asset.assetPath(src: 'myapp.css')}
让 Asset Pipeline 计算路径可以在部署时提供更大的灵 active 。例如,如果您在云中托管一个应用程序,您可以指定一个特定的 CDN(例如 AWS 的 CloudFront)来为您的静态 Assets 提供服务,只需在 Config.groovy 中进行简单的配置更改。
关于css - Grails g :resource to asset-pipeline conversion is failing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26916019/