我已经创建了grails应用程序并将其上传到heroku.
如果我使用'heroku scale web = 1',一切看起来都还可以.但如果我运行'heroku scale web = 2',一些静态资源就会消失.
从日志我可以看出,来自web.2 dyno的所有静态资源都缺失了.但是这个dyno没有任何错误就开始了.
我该如何解决这个问题?
https://github.com/grails-plugins/grails-resources/pull/11
根据资源插件的所有者Marc Palmer的说法,他们忽略了对旧的静态资源引用的检查.
因此,如果您没有使用粘性负载平衡(Heroku就是这种情况),这表明您可以在任何系统上使用负载平衡问题.以下是Heroku案例中发生的事情:
根据我的研究,最佳做法是在资源文件中声明您的资源.
请参阅以下内容:
http://grails-plugins.github.com/grails-resources/guide/3.%20Declaring%20resources.html
这将告诉应用服务器在启动时预先存在资源,从而避免了adhoc加载过程.
例如,就像我之前的电子邮件中一样,MyResources.groovy看起来像:
modules = {
application {
resource url:'js/application.js'
resource url:'js/ui.geo_autocomplete.js'
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用以下两种方法之一 - 显式指定资源,或使用adhoc加载(将以下内容添加到Config.groovy中:)
grails.resources.adhoc.includes = []
grails.resources.adhoc.excludes = ["*"]
Run Code Online (Sandbox Code Playgroud)
它实质上禁用了adhoc资源处理.
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |