2011-10-17 69 views
2

我是新来的rails和使用版本3.1.0,并尝试部署到heroku。我有一个非常简单的应用程序,在设法通过几个问题解决问题后,我已经成功启动并运行在heroku上。我使用命令Rails预编译 - all.js缺少

bundle exec rake assets:precompile 

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

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

我拥有所有必需的JavaScript文件中公共/ javscripts,但我不能在找到all.js的任何版本资产目录。我在的config/application.rb中但无济于事包括

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

我想知道是否有人能告诉我如何获得预编译来在资产目录中创建all.js,或者如果我在这里完全偏离轨道。我的印象是,预编译函数将所有的JavaScript文件编译成一个优化文件。另外,如果任何人有任何好的链接让初学者了解预编译功能如何在rails中工作,我会非常感激。

在此先感谢。

回答

2

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

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

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

+0

谢谢你的链接,他们相当有帮助。事实证明,我已经在某些时候将javascript_include_tag改为“all”,而不是“application”。阅读导轨指南后我发现了这一点。 – jamesamuir