gpt4 book ai didi

ruby-on-rails-3.1 - Rails 3.1 Assets 无法解析

转载 作者:行者123 更新时间:2023-12-04 08:50:08 28 4
gpt4 key购买 nike

问题

我有一个 Rails 3.0.4 应用程序,我按照 Railscast video: "Upgrading to rails 3.1" 的说明将其升级到 3.1.4 .

现在我遇到了 的问题 Assets 因为他们未解决 ,在服务器日志中给出消息,如下所示:

Started GET "/assets/application.css" for 127.0.0.1 at 2012-04-08 03:57:13 -0500
Served asset /application.css - 404 Not Found (15ms)

ActionController::RoutingError (No route matches [GET] "/assets/application.css"):
Rendered /usr/local/rvm/gems/ruby-1.9.2-p318/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (14.3ms)

Started GET "/assets/application.js" for 127.0.0.1 at 2012-04-08 03:57:13 -0500
Served asset /application.js - 404 Not Found (35ms)

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

这些文件位于 assets目录:
$ ls app/assets/*/application*
app/assets/javascripts/application.js app/assets/stylesheets/application.css

并包含这个:
$ cat app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .
$ cat app/assets/stylesheets/application.css
/*
*= require_self
*= require_tree .
*/

我想一切都已配置。我在这里放了一些文件块:
  • Gemfile ,包含所需的 Assets gem :
    group :assets do
    gem 'sass-rails', '~> 3.1.3'
    gem 'coffee-rails', '~> 3.1.0'
    gem 'uglifier'
    end
  • application.rb , 已启用 Assets :
    config.assets.enabled = true
    config.assets.version = '1.0'
  • development.rb :
    config.assets.compress = false
    config.assets.debug = true
  • 终于... application.html.erb布局:
    <%= stylesheet_link_tag 'application' %>
    <%= javascript_include_tag 'application' %>

  • 舞台

    我现在在 发展 环境。

    测试
  • 如果我要求 http://localhost:3000/assets/images/rails.png ,它抛出 No route matches [GET] "/assets/images/rails.png" ,但文件在那里:
    $ ls app/assets/images/rails.png 
    app/assets/images/rails.png
  • 然后我执行 rake assets:precompile :
    $ bundle exec rake assets:precompile
    /usr/local/rvm/rubies/ruby-1.9.2-p318/bin/ruby /usr/local/rvm/gems/ruby-1.9.2-p318/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
    /usr/local/rvm/rubies/ruby-1.9.2-p318/bin/ruby /usr/local/rvm/gems/ruby-1.9.2-p318/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets

    然后,执行服务器( rails s )并再次请求图像( rails.png ):
    $ rails s
    => Booting WEBrick
    => Rails 3.1.4 application starting in development on http://0.0.0.0:3000
    => Call with -d to detach
    => Ctrl-C to shutdown server
    /usr/local/rvm/gems/ruby-1.9.2-p318/gems/actionpack-3.1.4/lib/action_dispatch/http/mime_type.rb:101: warning: already initialized constant PDF
    [2012-04-08 04:53:06] INFO WEBrick 1.3.1
    [2012-04-08 04:53:06] INFO ruby 1.9.2 (2012-02-14) [i686-linux]
    [2012-04-08 04:53:06] INFO WEBrick::HTTPServer#start: pid=16702 port=3000

    Started GET "/assets/images/rails.png" for 127.0.0.1 at 2012-04-08 04:53:14 -0500
    Served asset /images/rails.png - 404 Not Found (38ms)

    ActionController::RoutingError (No route matches [GET] "/assets/images/rails.png"):

    Rendered /usr/local/rvm/gems/ruby-1.9.2-p318/gems/actionpack-3.1.4/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (125.2ms)

  • 所以 怎么了? , 难道我做错了什么?

    最佳答案

    据我所知,所有预编译 Assets 都移动到 Assets 文件夹中。

    这意味着 javascript、样式表和图像的内容将合并在 localhost:3000/assets 中。 .

    所以如果你搜索localhost:3000/assets/images/rails.png它应该位于app/assets/images/images/rails.png .
    因此 404。

    为了保持目录干净,我建议将所有图片保存在 app/assets/images/中,并使用 asset_path('rails.png') 指向它们。

    关于ruby-on-rails-3.1 - Rails 3.1 Assets 无法解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061810/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com