我尝试在生产中部署我的应用程序,当使用带有命令的资产管道" RAILS_ENV =生产rake资产:预编译",我发现哈希值与我本地预编译中的哈希值不同(但是相同的机器编译结果是相同的),例如:
生产:login-23ec3a8268b84dd41a8247f0152e9263.png
local:login-1fdc804afc03e64346d254c5fbd1045c.png
但代码库都是一样的。然后我尝试在不同的机器上预编译它,结果都是不同的。
有人可以帮助我或指出我有什么错误。非常感谢。
更新
调试后,我发现绝对路径是否相同,不同的机器可以编译出相同的哈希值:例如:
local / Users / user / MyApp:login-1fdc804afc03e64346d254c5fbd1045c.png
remote / Users / user / MyApp:login-1fdc804afc03e64346d254c5fbd1045c.png
但我想要的是编译后的资产哈希值与绝对路径
无关最后我弄清楚了:
我使用angular-rails-templates-0.2.0,它有一个默认配置:docs
我还没有修改此配置。这个lib寄存器修改了Rails.application.assets.version(这是计算所有资产' hash的关键),而它在MD5中使用rails绝对路径计算这个版本,这就是为什么相同的路径机器会得到的原因相同的编译资产。
解决方案:在application.rb中添加默认配置: config.angular_templates.inside_paths = [' app / assets']
答案 0 :(得分:0)
您的预编译命令是什么? 您应该明确地附加目标环境,如下所示。
rake assets:precompile RAILS_ENV=production