Rails 3.1生产资产:大文件被切成碎片

时间:2011-11-09 14:56:20

标签: ruby-on-rails-3.1 asset-pipeline

由于我使用Rails 3.1和资产管道,因此在生产模式下我遇到了一个大问题。

当我执行捆绑exec rake资产:预编译时,我遇到了错误,如

  

'myjsfile.js'具有无效的UTF-8字节序列

特别是tiny_mce插件js文件。

所以我放弃了,因为我的mac上的developpment中的一切正常,我在production.rb文件中写了这一行:config.assets.compile = true

因此生成的JS文件没有错误。

另一方面,长文件存在很大问题,例如jquery.js

通常,Rails只生成jQuery文件的一半,我发现暂时解决问题的唯一方法是继续使用js文件的URL(http://myapp.com/assets/jquery.js)并多次刷新页面,并在而jquery文件又是完整的。 然后几天后问题又回来了,我必须再做一次。

实际上,好像在编译大文件时,进程在中间停止,服务器将文件发送到一半。

你们有些人有这个问题吗?有什么想法可以来吗?

我在Ubuntu服务器上使用nginx和passenger进行制作。我在Mac上从未遇到过这个问题。

事先,谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

如果服务器上的内存不足,预编译过程将失败。尝试在Mac上执行rake assets:precompile并提交生成的资源,以便在服务器上获取它们。

从长远来看,对于每次成功构建,都要在中间CI服务器上运行预编译。