Rails资产在开发问题上预编译

时间:2014-03-04 13:15:09

标签: ruby-on-rails

我在我的开发环境中预编译资产(错误!)现在对js / css文件所做的任何更改都没有反映在本地浏览网站上。 我从公共目录中删除了资源文件夹,但后来没有css / js可用。 我怎么摆脱这个? 作为一个临时解决方案,我只是将项目克隆到新目录中,然后就可以了。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,通常,当您在assets目录中创建默认预编译时public目录。要恢复资产,可以再次预编译。

您可能会考虑删除cache目录中的tmp

稍后,您可以将$ (bundle exec) rake assets:precompile$ (bundle exec) rake assets:clean结合使用,而不是$ rm -r public/assets,以便新资产实际上有效。

environment提交后查看新更改的一行命令

$ RAILS_ENV=(environment) rake assets:clean assets:precompile

但通常在开发资产中并不意味着在生产模式下服务,因此在RAILS_ENV=production之前运行并在生产模式下启动本地服务器将被视为一种检查方式(但不能确保)如果您的资产将在实际生产中部署时提供。

答案 1 :(得分:0)

问题是:为什么在asset precompilation环境中需要development?这并不意味着像这样工作。

asset pipeline允许使用未压缩的,未经编译的JS文件版本进行开发。每次刷新浏览器时它都会重新加载它们,因此您可以轻松地开发应用程序。

但是,在production中,资产管道会将您拥有的JS文件/资产预编译为一个缩小的文件。这样可以在客户端上获得更好的性能,因为文件更小并且可以在一个请求中获取。

因此development中的预编译资产完全没有意义。