反编译开发资产管道

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 资产管道预编译超薄模板

Rails 3.1 资产管道 - 为啥我的图像没有为生产进行预编译?

Rails 4.2 不创建非消化资产

ruby 调试rails资产管道js使用uglifier预编译错误

如何避免在开发模式下提供预编译资产?

微信开发者工具 / 反编译工具CrackMinApp 下载安装