【问题标题】:Rails precompile - all.js missingRails 预编译 - all.js 缺失
【发布时间】:2011-10-17 03:59:24
【问题描述】:

我是 rails 新手,使用 3.1.0 版并尝试部署到 heroku。我有一个非常简单的应用程序,在解决了几个问题后,我设法在 heroku 上启动并运行了它。我用了命令

bundle exec rake assets:precompile

让heroku 加载应用程序的资产(我读到heroku 在3.1.0 版本中需要这个)。问题是当我尝试运行应用程序时,服务器给出了错误

ActionController::RoutingError (No route matches [GET] "/assets/all.js"):

我在 public/javscripts 中有所有必需的 javascript 文件,但我在资产目录中找不到 all.js 的任何版本。我已经包含了

config.assets.precompile << '*.js'

config/application.rb 中但无济于事。

我想知道是否有人可以告诉我如何获得预编译以在资产目录中创建 all.js,或者我是否完全偏离了轨道。我的印象是预编译函数将所有 javascript 文件编译成一个优化文件。

另外,如果有人有任何好的链接让初学者了解预编译功能在 Rails 中的工作原理,我将不胜感激。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    最好的指南是official rails guide。还有关于它的Railscast

    简而言之,您的 Javascript 文件位于 app/assets/javascript 中,预编译任务将从那里处理它们,然后放入 public/assets 目录。如果遵循默认设置,则不必更改预编译配置选项。不要忘记使用正确的助手来引用您的文件。

    阅读上面的资源,如果您要转换现有应用,请观看 Railscast 并按照指南的最后一部分进行操作 - 这些应该会为您指明正确的方向。

    【讨论】:

    • 感谢您提供的链接,它们很有帮助。事实证明,我在某个时候将 javascript_include_tag 更改为“all”而不是“application”。我在阅读 Rails 指南后发现了这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2021-11-12
    相关资源
    最近更新 更多