反编译开发资产管道
Posted
技术标签:
【中文标题】反编译开发资产管道【英文标题】:Uncompile Development Asset Pipeline 【发布时间】:2012-01-23 07:36:15 【问题描述】:我正在为我的生产环境编译我的资产管道,它适用于我的所有环境。如何为我的开发环境取消编译资产管道?
我检查了我的配置/开发环境,但找不到修复程序。
提前感谢您的帮助...
【问题讨论】:
【参考方案1】:要删除预编译的资产,请使用:
rake assets:clean
这基本上是删除public/assets
目录。如果您需要在特定环境中运行它,您可能需要包含 RAILS_ENV
变量。
【讨论】:
这对我不起作用。我不得不发出RAILS_ENV=development bundle exec rake assets:clean
。
另外,请务必清除浏览器缓存。即使您重新启动了服务器,提供的页面仍然可能包含已编译的 application.js 文件的缓存副本
这里都没有工作,不得不删除整个 public/assets
文件夹。
或者只是删除您的文件夹 public/assets
我不确定他们为什么将 Rails 4 的语法更改为 rake assets:clobber【参考方案2】:
尝试使用
rake assets:clobber
在 Rails 4 中为我工作
【讨论】:
想解释一下为什么会这样?在那之前我不能投票给你的答案,坦率地说很少有人会,所以答案应该帮助人们理解这个问题,而不仅仅是提供一行代码。 它会删除已编译的资产。您也可以手动删除它们,这只是一个快捷方式。【参考方案3】:当您在本地(在您的开发机器上)运行编译任务时,资产会在 Rails 生产环境中编译,但会写入公共文件夹。
这意味着即使您在开发模式下运行,它也会使用已编译的资产,而不是向管道发送请求。这是正常行为 - 仅当文件在 public/assets
中不存在时,请求才会进入管道。
编译任务通常应该只在部署时使用,并且在远程(生产)机器上。
如果你已经在本地编译,你可以删除public/assets
文件夹中的所有文件,开发会和以前一样。如果您将这些文件签入源代码管理,则需要将其删除。
一旦删除,事情应该可以正常工作。 s 最后一个提示:如果这是一个升级的应用程序,请根据 Rails 资产管道指南的last section 中的配置检查您的配置设置。
【讨论】:
至少这个答案不只是提供一行代码的答案,而是试图解释。【参考方案4】:对于 Rails 5:
$ RAILS_ENV=development bin/rake assets:clobber
【讨论】:
以上是关于反编译开发资产管道的主要内容,如果未能解决你的问题,请参考以下文章
Rails 3.1 资产管道 - 为啥我的图像没有为生产进行预编译?