在生产服务器上预编译资产非常慢。所以我决定在开发机器上重新编译它们,并通过jammit
将资源上传到Amazon S3。一切都已完成,但我有一些负面问题:
public/assets
目录包含在git
控件中。因为生产服务器上的public/assets
目录为空时失败application.js
包含在压缩的HTML中,那么我就有重复的js代码。更改js不会产生任何影响,因为预编译的application.js
会中断此代码。这样我的开发过程包括以下步骤:
jammit-s3
我的问题是:
application.js
目录中有它,则不包括压缩public/assets
?public/assets
目录?资产只能在S3服务器上。答案 0 :(得分:2)
对于问题一,我不知道除了跑步之外的永久性解决方案:
bundle exec rake assets:clean
切换回开发模式之前。我有兴趣看看你是否可以忽略开发中的资产而不关闭整个资产管道。
在production.rb中,您可以选择第二个问题:
# Enable serving of images, stylesheets, and JavaScripts from an asset server
config.action_controller.asset_host = "http://assets.example.com"
它应该忽略您的资产目录,因为它依赖于远程主机。 希望有所帮助。
答案 1 :(得分:1)
我通过在gitignore中包含资源目录并且只排除一个文件来解决了这个问题 - public/assets/manifest.yml
并且生产服务器现在正常工作,即config.action_controller.asset_host = "http://assets.example.com"
正常工作。它只需要manifest.yml
个文件