Ruby on rails 资产不';在舞台上不显示,但在生产上显示

Ruby on rails 资产不';在舞台上不显示,但在生产上显示,ruby-on-rails,deployment,capistrano,asset-pipeline,sprockets,Ruby On Rails,Deployment,Capistrano,Asset Pipeline,Sprockets,我有个问题我搞不清楚。我在谷歌上搜索了一下,没有找到合适的答案,所以我向社区询问 我有一个Rails应用程序,它有4个环境:开发、测试、登台和生产。在开发、测试和生产中,一切都很好,但由于某些原因,这些资产并没有在阶段中提供服务 暂存基本上是生产的副本。我使用Capistrano部署站点。这些资产正在服务器上编译,并且在服务器上为asset-xxxxx.ext类型。这正如预期的那样有效 脚本和样式表也以同样的方式编译(application-xxxxx.css,application-xxxxx

我有个问题我搞不清楚。我在谷歌上搜索了一下,没有找到合适的答案,所以我向社区询问

我有一个Rails应用程序,它有4个环境:开发、测试、登台和生产。在开发、测试和生产中,一切都很好,但由于某些原因,这些资产并没有在阶段中提供服务

暂存基本上是生产的副本。我使用Capistrano部署站点。这些资产正在服务器上编译,并且在服务器上为asset-xxxxx.ext类型。这正如预期的那样有效

脚本和样式表也以同样的方式编译(application-xxxxx.css,application-xxxxx.js)。这也如预期的那样起作用

问题

我的样式表中的图像url不会更改以反映sproket设置的路径。例如,文件sprite.png已更改为sprite-25d57a117a61de097e8f943ff745e8b0.png,但css仍保留sprite.png

令人困惑的是environments/staging.rb与environments/production.rb相同,我在生产方面没有问题

失败

我尝试使用以下价值观:

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
但什么都不管用。正如我所说,同样的设置工作在生产

谢谢你的帮助

请尝试以下代码:

在staging.rb中

config.assets.compile = true
然后运行commad:

RAILS_ENV=staging rake assets:precompile
并使用menifest文件推送编译后的文件


希望它能工作

谢谢你的回复。但这并不能解决问题。@Jeremie检查我的最新答案。使
compile=true
并再次尝试感谢您的回复,但运气不佳。它不起作用。