【问题标题】:Rails 3.2.13: Routing Error (No route matches [GET] "/stylesheets/application.css")Rails 3.2.13:路由错误(没有路由匹配 [GET] "/stylesheets/application.css")
【发布时间】:2013-07-19 22:01:03
【问题描述】:

更新

这是我的应用中“资产”的搜索结果(不包括日志)。

./app/assets/javascripts/application.js:4:// 任何 JavaScript/咖啡 此目录中的文件,lib/assets/javascripts, 供应商/资产/javascripts,

./app/assets/javascripts/application.js:5:// 或 插件的vendor/assets/javascripts,如果有的话,可以参考这里 使用相对路径。

./app/assets/stylesheets/application.css:5: * 此目录中的任何 CSS 和 SCSS 文件,lib/assets/stylesheets, 供应商/资产/样式表,

./app/assets/stylesheets/application.css:6: * 或插件的供应商/资产/样式表(如果有)可以使用相对路径在此处引用。

./config/application.rb:7: # 如果你 在部署到生产之前预编译资产,使用这一行

./config/application.rb:8: Bundler.require(*Rails.groups(:assets => %w(开发测试)))

./config/application.rb:9: # 如果你想要你的 在生产中懒惰编译的资产,使用这一行

./config/application.rb:10: # Bundler.require(:default, :assets, Rails.env)

./config/application.rb:54: # 启用资产管道

./config/application.rb:55: config.assets.enabled = true

./config/application.rb:57: # 你的资产版本,改变这个 如果您想使所有资产过期

./config/application.rb:58: config.assets.version = '1.0'

./config/environments/development.rb:9: config.assets.enabled = false

./config/environments/development.rb:34: # 不压缩资源

./config/environments/development.rb:35: config.assets.compress = false ./config/environments/development.rb:37: # 扩展行 加载资产

./config/environments/development.rb:38: config.assets.debug = true

./config/environments/production.rb:11: # 禁用 Rails 的静态资产服务器(Apache 或 nginx 已经可以 这个)

./config/environments/production.rb:12: config.serve_static_assets = true

./config/environments/production.rb:15: config.assets.compress = true

./config/environments/production.rb:17: # 不要回退到资产 如果错过了预编译资产,则流水线

./config/environments/production.rb:18: config.assets.compile = true

./config/environments/production.rb:20: # 为资产生成摘要 网址

./config/environments/production.rb:21: config.assets.digest = 真的

./config/environments/production.rb:23: # 默认为 Rails.root.join("public/assets")

./config/environments/production.rb:24: # config.assets.manifest = 你的路径

./config/environments/production.rb:45: # 启用服务 来自资产服务器的图像、样式表和 JavaScript

./config/environments/production.rb:46: # config.action_controller.asset_host = "http://assets.example.com"

./config/environments/production.rb:48: # 预编译附加 资产(application.js、application.css 和所有非 JS/CSS 已经添加)

./config/environments/production.rb:49: # config.assets.precompile += %w( search.js )

./config/environments/test.rb:10: # 配置静态资产服务器 使用 Cache-Control 测试性能

./config/environments/test.rb:11: config.serve_static_assets = true

./Gemfile:30:# Gems 仅用于资产,不是必需的

./Gemfile:32:group :assets do ./README.rdoc:159: | |-- 资产

./README.rdoc:192: |-- assets ./README.rdoc:199:app/assets

我也尝试在原始 html 中包含资产标签,如 <script src="assets/application.js"></script>,但它也不起作用。


我正在开发一个Rails 3.2.13 应用程序并遇到以下问题: app/assets 文件似乎没有运行!

在我的 application.html.erb 文件中:

  <%= stylesheet_link_tag    "application" %>
  <%= javascript_include_tag "application" %>

当我运行rails server 时,我在日志中看到以下错误消息:

Started GET "/stylesheets/application.css" for 127.0.0.1 at 2013-07-20 15:34:51
-0400

ActionController::RoutingError (No route matches [GET] "/stylesheets/application .css"):
actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:21:in ` call'
actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.13) lib/rails/rack/logger.rb:32:in `call_app'
railties (3.2.13) lib/rails/rack/logger.rb:16:in `block in call'
activesupport (3.2.13) lib/active_support/tagged_logging.rb:22:in `tagged'
railties (3.2.13) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.13)lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.5) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.13) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.5) lib/rack/lock.rb:15:in `call'
actionpack (3.2.13) lib/action_dispatch/middleware/static.rb:63:in `call'
railties (3.2.13) lib/rails/engine.rb:479:in `call'
railties (3.2.13) lib/rails/application.rb:223:in `call'
rack (1.4.5) lib/rack/content_length.rb:14:in `call'
railties (3.2.13) lib/rails/rack/log_tailer.rb:17:in `call'
rack (1.4.5) lib/rack/handler/webrick.rb:59:in `service'
c:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
c:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
c:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'

Rendered
c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/routing_error.erb
 within resc ues/layout (1.0ms)

同时,其他资产(js 文件、css 等)也有错误消息。另一个例子:

Started GET "/javascripts/application.js" for 127.0.0.1 at 2013-07-20
15:34:51 - 0400 ActionController::RoutingError (No route matches [GET] "/javascripts/application .js"): ...

我试过重启服务器,重启我的电脑,但是没有用。 我也尝试从其他功能应用中复制 development.rb 和 production.rb 文件,但也没有效果。

有人可以帮忙吗?


这是我的资产搜索路径,运行Rails.application.config.assets.paths

["c:/Users/user/rails_projects/fyff/app/assets/images", "c:/Users/user/rails_projects/fyff/app/assets/javascripts", "c:/Users/user/rails_projects/fyff/app/as sets/stylesheets", "c:/Users/user/rails_projects/fyff/vendor/assets/javascripts" , "c:/Users/user/rails_projects/fyff/vendor/assets/stylesheets", "c:/RailsInstal ler/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/coffee-rails-3.2.2/lib/assets/javascripts", “c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/best_in_place-1 152e2256afd/lib/assets/javascripts", "c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/ 1.9.1/bundler/gems/bootstrap-switch-rails-2cb6f83ee23e/vendor/assets/javascripts ", "c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/bundler/gems/bootstrap-switc h-rails-2cb6f83ee23e/供应商/资产/样式表”, "c:/RailsInstaller/Ruby1.9.3/li b/ruby/gems/1.9.1/gems/jquery-rails-3.0.1/vendor/assets/javascripts", "c:/RailsI nstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bootstrap-sass-2.3.2.0/vendor/assets /图片”, "c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bootstrap-sass-2 .3.2.0/vendor/assets/javascripts", “c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1. 9.1/gems/bootstrap-sass-2.3.2.0/vendor/assets/stylesheets"]

这对我来说很好......

【问题讨论】:

  • 我看到文件名和 .js & .css 之间有一个空格
  • 如何在布局中包含这些内容?
  • 使用常规的包含标签,如在更新中
  • 您是否启用了资产管道?有效的资产管道链接应该是assets/application.js/.css
  • 拜托,我根本没有帮助,我们仍然不知道是什么原因!也许你可以区分这两个项目?

标签: ruby-on-rails


【解决方案1】:

我遇到了这个错误并通过运行解决了它:

RAILS_ENV=生产 rake 资产:预编译

【讨论】:

    【解决方案2】:

    你在申请.css之后有一个空格

    【讨论】:

      【解决方案3】:

      通过创建一个新应用程序并将所有文件移到那里来修复。资产管道现在正常运行。

      【讨论】:

        猜你喜欢
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        • 2015-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-26
        • 2016-05-18
        相关资源
        最近更新 更多