2012-08-10 50 views
1

我使用的Grails Groovy和资源插件配置。 我有这样的场景:资源插件提供了有关文件错误删除?

  • 我有一个产品,它具有多种图像。

  • 管理员可以删除任何图像。

逻辑是,当管理员点击“删除”时,我从文件系统中删除文件(及其缩略文件)。

整个过程平稳运行,但经过一段时间(5-6分钟)后,当资源插件再次刷新其资源时,它会抛出一个错误,提示“某些模块依赖于资源[path/to/file ]但该文件未找到“。

堆栈跟踪如下:

2012-08-10 12:49:41,159 [http-8080-2] ERROR errors.GrailsExceptionResolver - Exception occurred when processing request: [GET]/
Stacktrace follows: 
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <r:layoutResources>: Module [[email protected]@__] depends on resource [/images/product/p312roduct/original/Candle_4.jpg] but the file cannot be found at /home/desktop2/finalWorkspace3/ds/grails-app/views/layouts/main.gsp:13 
    at home_desktop2_finalWorkspace3_ds_grails_app_views_layouts_main_gsp$_run_closure1.doCall(main.gsp:13) 
    at home_desktop2_finalWorkspace3_ds_grails_app_views_layouts_main_gsp$_run_closure1.doCall(main.gsp) 
    at home_desktop2_finalWorkspace3_ds_grails_app_views_layouts_main_gsp.run(main.gsp:17) 
    at org.grails.plugin.resource.DevModeSanityFilter.doFilter(DevModeSanityFilter.groovy:44) 
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:197) 
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:171) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: java.lang.IllegalArgumentException: Module [[email protected]@__] depends on resource [/images/product/p312roduct/original/Candle_4.jpg] but the file cannot be found 
    at org.grails.plugin.resource.ResourceTagLib$_closure8.doCall(ResourceTagLib.groovy:463) 
    at org.grails.plugin.resource.ResourceTagLib.invokeMethod(ResourceTagLib.groovy) 
    at org.grails.plugin.resource.ResourceTagLib$_closure6.doCall(ResourceTagLib.groovy:387) 
    ... 7 more 
2012-08-10 12:49:41,172 [http-8080-2] ERROR pages.GroovyPagesServlet - Error processing GSP: Error executing tag <r:layoutResources>: Module [[email protected]@__] depends on resource [/images/product/p312roduct/original/Candle_4.jpg] but the file cannot be found at /home/desktop2/finalWorkspace3/ds/grails-app/views/layouts/main.gsp:13 
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <r:layoutResources>: Module [[email protected]@__] depends on resource [/images/product/p312roduct/original/Candle_4.jpg] but the file cannot be found at /home/desktop2/finalWorkspace3/ds/grails-app/views/layouts/main.gsp:13 
    at home_desktop2_finalWorkspace3_ds_grails_app_views_layouts_main_gsp$_run_closure1.doCall(main.gsp:13) 
    at home_desktop2_finalWorkspace3_ds_grails_app_views_layouts_main_gsp$_run_closure1.doCall(main.gsp) 
    at home_desktop2_finalWorkspace3_ds_grails_app_views_layouts_main_gsp.run(main.gsp:17) 
    at org.grails.plugin.resource.DevModeSanityFilter.doFilter(DevModeSanityFilter.groovy:44) 
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:197) 
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:171) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: java.lang.IllegalArgumentException: Module [[email protected]@__] depends on resource [/images/product/p312roduct/original/Candle_4.jpg] but the file cannot be found 
    at org.grails.plugin.resource.ResourceTagLib$_closure8.doCall(ResourceTagLib.groovy:463) 
    at org.grails.plugin.resource.ResourceTagLib.invokeMethod(ResourceTagLib.groovy) 
    at org.grails.plugin.resource.ResourceTagLib$_closure6.doCall(ResourceTagLib.groovy:387) 
    ... 7 more 

回答

3

资源插件预计,在模块底层文件不会改变。此外,正被连接到直接由应用程序的任何静态的资产(而不是通过一个模块或<克:资源>标记),被认为是ad-hoc,并加入作为模块的资源的上下文。这使得即使是这些“遗留”资产也能被资源插件缩小,编译,缓存等。

如果您正在使用的文件系统,提供你的这些有点动态资产,你最好从资源插件的Ad-Hoc处理中排除。设置配置标志grails.resources.adhoc.excludes排除任何目录您在存储这些资产。

+0

得到它..感谢 – 2012-08-13 07:02:30

+0

你是怎么解决的呢? @AtharvaJohri? – 2017-03-10 06:40:10