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