0

从3.1.1 Rails升级到3.2.8时,看到样式表和图像的路由错误真的令人沮丧。尝试了“捆绑EXEC轨服务器”命令,也尝试了在文件中添加宝石一个接一个,没有工作过:(资产的路由错误升级Rails 3.1时的Rails 3.2.8

ActionController::RoutingError (No route matches [GET] "/stylesheets/application.css"): 
    actionpack (3.2.8) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
    railties (3.2.8) lib/rails/rack/logger.rb:26:in `call_app' 
    railties (3.2.8) lib/rails/rack/logger.rb:16:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/request_id.rb:22:in `call' 
    rack (1.4.1) lib/rack/methodoverride.rb:21:in `call' 
    rack (1.4.1) lib/rack/runtime.rb:17:in `call' 
    activesupport (3.2.8) lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
    rack (1.4.1) lib/rack/lock.rb:15:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/static.rb:62:in `call' 
    railties (3.2.8) lib/rails/engine.rb:479:in `call' 
    railties (3.2.8) lib/rails/application.rb:223:in `call' 
    rack (1.4.1) lib/rack/content_length.rb:14:in `call' 
    railties (3.2.8) lib/rails/rack/log_tailer.rb:17:in `call' 
    rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service' 

回答

1

当轨道链接到资产,始终使用asset_pathasset_url,或那反过来调用这些辅助功能之一(image_pathimage_urljavascript_include_tagstylesheet_link_tag)。

在你的情况下,它看起来像在你的应用程序布局,你硬编码/stylesheets/application.css。简单的改变代码为类似

<%= stylesheet_link_tag :application %> 

它应该正确指向/assets/application.css进行开发,并且/assets/application-<sha1 hash>.css正在生产(编译资产时)。

另外,如果你有资产本地编译(如果你在public/assets有什么是这种情况,您可能要rm -rf public/assets,如果你在本地开发),那么你需要在你的config/application.rb以下行:

config.serve_static_assets = true 
+0

<%= javascript_include_tag “应用程序” %> <%= csrf_meta_tags%> <%= stylesheet_link_tag '蓝图/屏幕',:媒体=> '屏幕' %> <%= stylesheet_link_tag '蓝图/打印' ,:media =>'print'%> <%= stylesheet_link_tag“application”%> <%= stylesheet_link_tag“st art/jquery-ui-1.8.16.custom.css“%> 这是如何在我的application.html.erb,在轨道上运行良好3.1 – user1069240 2012-08-13 06:58:54

+0

好吧,我更新了一些更多的信息的答案。我在这里猜测你在'public/assets'中有文件。也有可能是这些文件中的一些文件具有硬编码的链接,尽管很难想象该链接是针对application.css的。 – 2012-08-13 08:08:55

+0

我把这个交给了宝石档案'group:assets do gem'sass-rails','〜> 3.2.3' gem'coffee-rails','〜> 3.2.1' gem'uglifier',' > = 1.0.3' end' 删除“group:assets do”工作 – user1069240 2012-08-13 10:04:17