【问题标题】:Rails asset pipeline - JS and CoffeeScriptRails 资产管道 - JS 和 CoffeeScript
【发布时间】:2012-07-10 15:25:53
【问题描述】:

我的/app/assets/javascripts/ 文件夹中有.js.coffee 文件。除非我调用 rake assets:precompile,否则 .coffee 文件将不会运行,这很痛苦,因为我必须执行 rake assets:clean 并在每次进行更改时再次预编译它们。

此外,除了源文件之外,还包含预编译的 .js 文件,这会导致双重事件处理程序和所有这些好东西。

我的理解是,如果咖啡脚本未预编译,则应在每次请求时将其编译为 javascript,但似乎并没有这样做。我在 Firebug 中找不到加载的已编译脚本,至少我看不到它的行为。

我的/config/application.rb 配置了以下行:

# Enable the asset pipeline
config.assets.enabled = true

还有什么要检查的?

我正在使用 Rails 3.2.3。

【问题讨论】:

    标签: ruby-on-rails asset-pipeline


    【解决方案1】:

    如果您在本地计算机上进行预编译,则可以将这些生成的资产提交到存储库并继续部署。无需在生产机器上编译它们。

    但它引入了一个问题:现在当您更改源文件(coffescript / scss)时,应用程序不会接收更改,因为它将提供预编译文件。 rake assets:clean 删除这些预编译文件。

    来自https://stackoverflow.com/a/9335864/643500

    如果我希望资产在生产服务器上预编译以获取每次构建的新更改,我通常会做的只是清理资产 - 当然,除非你重新预编译它们一次

    rake assets:clean
    

    当进行更改并且您不想在每次构建时都预编译它们时

    rake assets:clean
    rake assets:precompile
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      相关资源
      最近更新 更多