【问题标题】:Uncompile Development Asset Pipeline反编译开发资产管道
【发布时间】:2012-01-23 07:36:15
【问题描述】:

我正在为我的生产环境编译我的资产管道,它适用于我的所有环境。如何为我的开发环境取消编译资产管道?

我检查了我的配置/开发环境,但找不到修复程序。

提前感谢您的帮助...

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3.1 asset-pipeline


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-15
      • 2013-05-08
      • 2012-02-06
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2014-08-28
      • 2023-03-31
      相关资源
      最近更新 更多