【问题标题】:Approaches to minify js and css in grails applications在 grails 应用程序中缩小 js 和 css 的方法
【发布时间】:2013-03-14 12:32:10
【问题描述】:

我正在缩小 grails 应用程序中的 js 和 css 文件。我最初的计划是使用资源插件来缩小资源(还查看了 jawr 和 performance-ui,但这些天资源似乎是事实上的标准)。

Resources 可以轻松地使用 YUI 缩小单个 CSS 文件,但我们有 40 多个 JS 文件,我们希望将它们连接成一个文件(并且这些文件也需要以正确的顺序连接)我还没有看到任何表明 Resources 开箱即用地支持这一点的东西,这些是我们迄今为止计划的方法:

  1. 添加新的 grails taglib 以连接 js 和 css 文件以创建一个 js 和一个 css 文件并使用资源插件缩小。一个简单的实现将意味着每次提供页面时 yui-minify 都会运行(!!)所以我们需要以某种方式引入缓存。

  2. 使用 BuildConfig 的 grails.war.resources 来缩小 js 和 css。这将解决缓存问题,因为资源只会在构建时构建和缩小,但需要我们使用 grails run-war 在本地进行测试,因此任何与缩小相关的错误都不会在开发后期被捕获循环。

这一定是一个相当普遍的问题。其他人在做什么?想了解我可以使用的任何其他方法或最佳做法。

【问题讨论】:

    标签: grails minify


    【解决方案1】:

    您可以使用同一个包来制作所有资源,这样,您将只有一个合并的 js。示例:

    main {
      resource id: 'mainjs', url: 'js/main.js'
      defaultBundle: 'mybundle'
    }
    
    second {
      resource id: 'secondjs', url: 'js/second.js'
      defaultBundle: 'mybundle'
    }
    

    根据文档:

    “捆绑”映射器将相同类型的资源加在一起以减少 您的客户页面请求的文件数。

    “bundle”映射器查看“bundle”属性的值 资源,如果找到,会将资源添加到新的合成 聚合资源。

    这个聚合资源本身是通过映射器处理的,所以它是 取决于您应用于资源类型的其他优化 捆绑包正在聚合。

    捆绑包始终位于静态资源的基本目录中 文件夹 - 这意味着对包内文件的引用必须是 重新调整,以便他们继续引用相同的文件。这是制作的 可以通过 csspreprocessor 和 cssrewriter 映射器处理 CSS 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      相关资源
      最近更新 更多