首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails :资源到资产管道的转换正在失败。

Grails :资源到资产管道的转换正在失败。
EN

Stack Overflow用户
提问于 2014-11-13 18:35:27
回答 1查看 662关注 0票数 0

目前在我的Grails应用程序中,我的所有CSS/JSS都分别在web-app/cssweb-app/js中,我在GSP中引用它们如下:

代码语言:javascript
复制
<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中的适当位置。当服务器启动时,我的应用程序样式完全错误,很明显,Grails无法在它们的新位置找到我的<g:resource> /JS文件。

我需要做什么来使这个转换完成和正确?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-14 02:07:30

您可以使用资产管道标记:

代码语言:javascript
复制
 <asset:stylesheet src="myapp.css" />
 <asset:javascript src="myapp.js" />

这将在grails-app/assets/样式表和javascripts中查找您的资源文件。

如果您仍然希望获取相对路径,则需要使用资产管道方法来实现。

资产管道可以在部署时更改路径:例如,在开发环境中,没有任何资源被缩小和组合,路径类似于您的_APP/ Asset /myapp.js。

在生产环境中,路径将更改为仅YOUR_APP/assets/SOME_HASH_OF_YOUR_MINIFIED_ASSET。

因此,要让资产管道告诉您路径使用:

代码语言:javascript
复制
 ${asset.assetPath(src: 'myapp.js')}
 ${asset.assetPath(src: 'myapp.css')}

让资产管道计算路径允许在部署时具有更大的灵活性。例如,如果您在云中承载一个应用程序,您可以指定一个特定的CDN (比如来自AWS的CloudFront ),以便在Config.groovy中使用简单的配置更改来服务您的静态资产。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26916019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档