Rails预编译 - 缺少all.js

时间:2011-10-17 03:59:25

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

我是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文件,但我在assets目录中找不到任何版本的all.js。我已经包括了

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

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

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

此外,如果有人有任何好的链接让初学者了解预编译功能如何在rails中工作,我将非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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

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