Caching Grails资产管道未封存

Caching Grails资产管道未封存,caching,grails,compilation,asset-pipeline,Caching,Grails,Compilation,Asset Pipeline,我是Grails的新手,我想问一下谁是Grails方面的专家。我在项目中使用资产管道作为资源管理。一切都很好,但有一个问题,无论我的资源文件(scss文件、咖啡脚本文件等)是否更改,每次呈现视图时(在开发和测试环境中)都会编译资源。这使得项目运行缓慢。是否有在资产管道中缓存资源的解决方案,因此,如果没有任何更改,则不会编译资源。谢谢 如果您使用require构建require树,然后在视图中引用该树,那么您可以直接排除插件每次预编译的原始资源。例如: 如果您在grails app/assets/

我是Grails的新手,我想问一下谁是Grails方面的专家。我在项目中使用资产管道作为资源管理。一切都很好,但有一个问题,无论我的资源文件(scss文件、咖啡脚本文件等)是否更改,每次呈现视图时(在开发和测试环境中)都会编译资源。这使得项目运行缓慢。是否有在资产管道中缓存资源的解决方案,因此,如果没有任何更改,则不会编译资源。谢谢

如果您使用
require
构建
require树
,然后在视图中引用该树,那么您可以直接排除插件每次预编译的原始资源。例如:

如果您在
grails app/assets/javascripts/application.js
as下有一个require树

//= require jquery
//= require app/models.js
//= require_tree views
//= require_self
.coffee

#= require app/models.js
#= require test
#= require_self
#= require_tree .
您不希望每次使用require树呈现视图时都对
models.js
进行预编译,然后添加如下配置:

grails.assets.excludes = ["app/models.js"] //app/*js for all resources under app
上面的配置通知插件避免资源的预编译,并且只有在视图中引用资产并且资产有任何更改时才会编译

你可以在网上找到更多,主要是

(可选)如果您的系统中包含资产,则可以从处理中排除资产 需要一棵树。这可以大大减少您的应用程序的编译时间 资产

上面的配置可以是特定于环境的,并且只能用于开发和测试。对于生产环境和/或战争,预编译并不重要

environments {
    development {
        grails.assets.excludes = ["app/models.js"]
    }
}

回答得很好。我喜欢这个插件。关闭轻微捕获,只排除战争创建中的事件,一点也不影响开发模式。Dev维护自己的内部缓存,并且只有在检测到更改时才动态重新编译,这意味着在Dev模式下运行应用程序时,无法从编译中明确排除资源?这也意味着上述设置不适用于OP@davydotcomI必须尽快检查并挖掘插件。干得好@Davydotcom有关于这个问题的最新消息吗?