我有一个正在从Rails 3升级到Rails 4的应用程序,一切都在Windows 7机箱上正常开发。但是,当我尝试在CentOS 5.10虚拟机上测试生产时,图像会被破坏。 Firefox显示“图像无法显示,因为它包含错误”,Chrome只显示为空白。当我使用curl时,我得到以下信息:
HTTP / 1.1 200 OK
日期:2014年6月3日星期二20:36:44 GMT
服务器:Apache / 2.2.3(CentOS)
缓存控制:公共,必须重新验证
ETag:“6fda96e78f0677973258d551e4c1a95e”
X-Request-Id:6ae8054b-8756-4ab1-906f-10ce13da31ed
X-Runtime:0.004431
X-Sendfile:/home/foo/app/assets/images/loading.gif
X-Powered-By:Phusion Passenger 4.0.41
内容长度:0
Last-Modified:Mon,02 Jun 2014 20:38:10 GMT
状态:200 OK
连接:关闭
内容类型:image / gif
正如您所看到的,我在Apache 2.2.3上使用Phusion Passenger 4.0.41。 CentOS是版本5.10。我还仔细检查确实安装了mod_xsendfile,它是。
我已经尝试了他们建议的所有内容on GitHub但没有成功。
我的日志只是说Started GET "asset-files/loading.gif for 10.0.0.187 at 2014-06-03 -0600
(注意资产已更改为资产文件,因为Rails 2天中名为资产的资产存在冲突)。
我也预先编译了我的资产。以及删除缓存。有什么想法吗?
答案 0 :(得分:0)
我终于找到了一个很好的StackOverflow帖子,可以在Images and assets not working in my production server on rails 3.1.0找到。
基本上,我必须在config / enviornments / production.rb文件中添加以下两行:
config.assets.compile = false
config.assets.digest = true
然后我再次编译资产并重新启动应用程序,它现在似乎正在运行。