当我在 test/dev 本地运行我的应用程序时,我的 View 很好地出现并且一切都很愉快。当我尝试导航到在我的远程服务器/本地生产服务器上运行的那些相同的 erb 文件时,我收到如下错误:
ActionController::RoutingError (No route matches "/stylesheets/scaffold.css")
我在 SO 上看到过类似的问题,但没有人能够解决我的问题。我找到的最接近答案的是这里的第一个答案:Rails 404 error for Stylesheet or JavaScript files
据我了解,最好的办法是配置我的网络服务器以提供静态文件。我如何在本地/在 Heroku 上执行此操作?
更新
根据 raidfive 的建议,我将 config.serve_static_assets 从 false 更改为 true,这解决了我的问题。但是,我看到它在 production.rb 中说 Apache 或 nginx 应该已经在为静态 Assets 提供服务。以这种方式提供静态 Assets 是否不那么好/专业,如果是这样,如果我使用 Heroku,我将如何达到预期的结果?
更新 2
显然是 Heroku does this automatically , 我有一个额外的逗号导致了恶作剧。我能够使用 following tip 查看扩展的 Heroku 日志。追查问题。谢谢!
最佳答案
你在使用 Rails 3 吗?默认情况下,Rails 3/webrick 在生产模式下不提供静态文件。您可以通过设置轻松启用此功能config.serve_static_assets
至 true
在您的 production.rb
文件。
关于ruby-on-rails - Rails 生产静态文件路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928490/