【问题标题】:Grails g:resource to asset-pipeline conversion is failingGrails g:资源到资产管道的转换失败
【发布时间】:2014-11-13 18:35:27
【问题描述】:

目前在我的 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 中的适当位置。 我将&lt;g:resource&gt; 标记留在原处。当服务器启动时,我的应用程序的样式完全错误,很明显 Grails 无法在新位置找到我的 CSS/JS 文件。

我需要做些什么来完成和正确的转换?

【问题讨论】:

    标签: css grails asset-pipeline


    【解决方案1】:

    您可以使用资产管道标签库:

     <asset:stylesheet src="myapp.css" />
     <asset:javascript src="myapp.js" />
    

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

    如果您仍然希望获取相对路径,则需要使用资产管道方法来执行此操作。

    资产管道可以在部署时更改路径: 例如,在开发环境中,没有任何资源被压缩和组合,路径类似于 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 计算路径可以在部署时提供更大的灵活性。例如,如果您在云中托管应用程序,您可以指定一个特定的 CDN(例如 AWS 的 CloudFront),通过在 Config.groovy 中进行简单的配置更改来为您的静态资产提供服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多