css - Grails g :resource to asset-pipeline conversion is failing

标签 css grails asset-pipeline

目前在我的 Grails 应用程序中,我所有的 CSS/JSS 都在里面 web-app/cssweb-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/

相关文章:

CSS 内容 div 被推到菜单 div 下面

css - 如何在 Primefaces 中垂直对齐 inputText 和 commandButton

xml - Grails-Hibernate XML和域类

grails - 如何为grails 2.5创建一个简单的构建脚本

ruby - Rails 没有缩小

css - Grails 3.0.1 Assets 管道 Assets 未在生产WAR中链接

javascript - 如何设置上一个日期在 UI datepicker 中变为非事件状态

javascript - 如何在页面本身不滚动的情况下使 div 滚动?

grails - Grails-在运行时覆盖消息 bundle 属性

css - 如何最好地在 Rails 应用程序中组织 Assets