Rails не использует сгенерированный файл CSS - PullRequest
1 голос
/ 04 ноября 2011

У меня есть приложение на Rails 3.1. Я генерирую контроллер, просто чтобы показать, что происходит:

$ rails generate controller Rocks index show edit
      create  app/controllers/rocks_controller.rb
       route  get "rocks/edit"
       route  get "rocks/show"
       route  get "rocks/index"
      invoke  haml
      create    app/views/rocks
      create    app/views/rocks/index.html.haml
      create    app/views/rocks/show.html.haml
      create    app/views/rocks/edit.html.haml
      invoke  rspec
      create    spec/controllers/rocks_controller_spec.rb
      create    spec/views/rocks
      create    spec/views/rocks/index.html.haml_spec.rb
      create    spec/views/rocks/show.html.haml_spec.rb
      create    spec/views/rocks/edit.html.haml_spec.rb
      invoke  helper
      create    app/helpers/rocks_helper.rb
      invoke    rspec
      create      spec/helpers/rocks_helper_spec.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/rocks.js.coffee
      invoke    scss
      create      app/assets/stylesheets/rocks.css.scss

Отлично. Хорошо выглядеть. Сгенерировано app/assets/stylesheets/rocks.css.scss. Как раз то, что я хотел.

Теперь, перейдя к http://localhost:3000/rocks/index, я изучаю источник и вижу:

  <head> 
    ...
    <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 
    <script src="/assets/jquery.js?body=1" type="text/javascript"></script> 
    <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script> 
    <script src="/assets/rocks.js?body=1" type="text/javascript"></script> 
    <script src="/assets/application.js?body=1" type="text/javascript"></script> 
    ...
  </head>

rocks.css отсутствует, и я понятия не имею, почему. Кто-нибудь сталкивался с чем-то подобным раньше?

1 Ответ

3 голосов
/ 04 ноября 2011

Ваш application.css должен иметь следующие строки:

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. 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 . 
*/

самое важное:

*= require_tree . 

Тогда * application.css должен включать rocks.css, это преимущество, используя assets

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...