Rails:在开发过程中无法正确呈现资产

时间:2013-03-11 22:29:46

标签: ruby-on-rails asset-pipeline twitter-bootstrap-rails

我几天来一直在努力解决这个问题 - 我在我的rails应用程序中添加了bootstrap(和其他一些宝石),但由于某种原因,相应的CSS文件没有呈现,因此引导样式没有显示出来

以下是我的文件的相关部分:

application.html.erb中的

app/views/layouts

<head>
  <title>Myapp</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script type="text/javascript" src="https://raw.github.com/twitter/bootstrap/master/js/bootstrap-dropdown.js"></script>
</head>
application.css中的

app/assets/stylesheets

/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
 * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the top of the
 * compiled file, but it's generally better to create a new file per style scope.
 *
 *= require_self
 *= require_tree .
 */

(此文件夹中还有更多CSS文件,包括bootstrap_and_overrides.cssgmaps4rails.css)。

加载页面时服务器日志:

$ rails server
=> Booting WEBrick
=> Rails 3.2.8 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
        SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
        This poses a security threat. It is strongly recommended that you
        provide a secret to prevent exploits that may be possible from crafted
        cookies. This will not be supported in future versions of Rack, and
        future versions will even invalidate your existing user cookies.

        Called from: /Users/me/.rvm/gems/ruby-2.0.0-p0/gems/actionpack-3.2.8/lib/action_dispatch/middleware/session/abstract_store.rb:28:in `initialize'.
[2013-03-11 15:19:32] INFO  WEBrick 1.3.1
[2013-03-11 15:19:32] INFO  ruby 2.0.0 (2013-02-24) [x86_64-darwin11.4.2]
[2013-03-11 15:19:32] INFO  WEBrick::HTTPServer#start: pid=94815 port=3000


Started GET "/" for 127.0.0.1 at 2013-03-11 15:19:35 -0700
Processing by HomeController#index as HTML
  Rendered home/index.html.erb within layouts/application (2.8ms)
  Trip Load (0.2ms)  SELECT "trips".* FROM "trips" 
  Rendered layouts/_navigation.html.erb (62.0ms)
Completed 200 OK in 143ms (Views: 141.0ms | ActiveRecord: 1.3ms)

实际在Chrome中呈现的源代码:

<head>
  <title>Myapp</title>
  <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
  <script src="/assets/application.js?body=1" type="text/javascript"></script>
  <meta content="authenticity_token" name="csrf-param" />
<meta content="GfG+KCsrNZaChqWvUz/g5RqsdHrXOtumFzHaOjJmFQg=" name="csrf-token" />
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script type="text/javascript" src="https://raw.github.com/twitter/bootstrap/master/js/bootstrap-dropdown.js"></script>
</head>

我的Gemfile

gem "bootstrap-sass", '~> 2.3.0.1'
gem "simple_form"

gem 'gmaps4rails'

config/environments/development.rb

config.cache_classes = false

# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true

# Show full error reports and disable caching
config.consider_all_requests_local       = true
config.action_controller.perform_caching = false

# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false

# Print deprecation notices to the Rails logger
config.active_support.deprecation = :log

# Only use best-standards-support built into browsers
config.action_dispatch.best_standards_support = :builtin

# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict

# Log the query plan for queries taking more than this (works
# with SQLite, MySQL, and PostgreSQL)
config.active_record.auto_explain_threshold_in_seconds = 0.5

# Do not compress assets
config.assets.compress = false

# Expands the lines which load the assets
config.assets.debug = true

我将config/application.rb中的资产管道设置为true,并且我没有更改调试设置。我的RAILS_ENVdevelopment。据我了解,由于boostrap_and_overrides.css.scss调用,rails应该编译并提供包括require_tree .在内的所有CSS文件。我多次运行rake assets:precompilebundle exec rake assets:precompile,但我认为这不重要。我正在运行ruby 2.0.0p0(2013-02-24修订版39474)。

真正奇怪的是,我和我在这个项目上的合作伙伴拥有完全相同的代码(来自我们的github存储库),它可以在他们的本地机器上工作,但它对我的工作不起作用。有没有人对所发生的事情有任何意见?

1 个答案:

答案 0 :(得分:1)

我在Rails 3.2.6中也遇到了同样的问题,当我升级到Rails 3.2.15时它就消失了。