当我在test/dev中本地运行我的应用程序时,我的视图很好地出现了,一切都很愉快.当我尝试导航到我的远程服务器/本地生产服务器上运行的那些相同的erb文件时,我得到如下错误:
ActionController::RoutingError (No route matches "/stylesheets/scaffold.css")
Run Code Online (Sandbox Code Playgroud)
我在这里看过类似的问题,但没有一个能够解决我的问题.我找到答案的最接近的答案是第一个答案:样式表或JavaScript文件的Rails 404错误
据我所知,最好的办法是配置我的网络服务器以提供静态文件.我如何在本地/ Heroku上这样做?
更新
根据raidfive的建议,我将config.serve_static_assets从false更改为true,这解决了我的问题.但是,我看到它在production.rb中说Apache或nginx应该已经在提供静态资产.以这种方式提供静态资产是不是更好/更专业?如果是这样,如果我使用Heroku,我将如何达到预期的效果?
更新2
显然Heroku 会自动执行此操作,我有一个额外的逗号导致恶作剧.我能够使用以下提示查看扩展的Heroku日志来追踪问题.谢谢!
我有一个应用程序在路由文件中具有以下内容:
namespace "admin" do
# ADMINISTRATIVE ROUTES ONLY
root :to => 'home#index'
resources :comments do
member do
get :approve
get :reject
end
end
resources :users do
member do
get :block
get :unblock
end
end
end
Run Code Online (Sandbox Code Playgroud)
在本地浏览/ admin时,我会收到相应页面的欢迎.在heroku版本的相同URL上,我得到404.该路线在'heroku rake routes'中正确显示
日志显示:
ActionController::RoutingError (wrong constant name Admin/
homeController):
/disk1/home/slugs/196384_c95a9e3_4463/mnt/.bundle/gems/gems/
activesupport-3.0.0.beta4/lib/active_support/inflector/methods.rb:
103:in `const_defined?'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?