2013-08-08 3 views
0

Я пытаюсь настроить конвейер активов в старом приложении rails, которое у меня есть, чтобы я мог начать использовать CoffeeScript. Я использую ruby ​​1.9.3-p327 и Rails 3.2.13. Я использовал, чтобы спрятать все мои JS, CSS и мои изображения в папке public/. Это то, что я делал до сих пор ->Rails - Загрузка активов через Asset Pipeline

  1. я переехал их все приложения/активы, я добавил файлы манифеста и для JS и CSS вызова //= require_tree ..

  2. Добавлена ​​следующее драгоценных камни

    group :assets do 
        gem 'coffee-rails' 
        gem 'uglifier' 
        gem 'sass-rails' 
        gem 'therubyracer' 
    end 
    
  3. Удалены все мои javascript_include_tags для = javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js'

  4. Добавлены за исключением следующего к моему config/application.rb файлу

    # Enforce whitelist mode for mass assignment. 
    # This will create an empty whitelist of attributes available for mass-assignment for all models 
    # in your app. As such, your models will need to explicitly whitelist or blacklist accessible 
    # parameters by using an attr_accessible or attr_protected declaration. 
    config.active_record.whitelist_attributes = true 
    
    # Enable the asset pipeline 
    config.assets.enabled = true 
    
    # Version of your assets, change this if you want to expire all your assets 
    config.assets.version = '1.0' 
    
  5. В конфигурации/среда/файл development.rb

    # Do not compress assets 
    config.assets.compress = false 
    
    # Expands the lines which load the assets 
    config.assets.debug = true 
    
  6. Я добавил к конфигурации/сред/production.rb

    # Compress JavaScripts and CSS 
    config.assets.compress = true 
    
    # Choose the compressors to use 
    # config.assets.js_compressor = :uglifier 
    # config.assets.css_compressor = :yui 
    
    # Don't fallback to assets pipeline if a precompiled asset is missed 
    config.assets.compile = false 
    
    # Generate digests for assets URLs. 
    config.assets.digest = true 
    
    # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
    # config.assets.precompile += %w(search.js) 
    

я перечитал раздел на Asset Pipeline просто чтобы увидеть, если я испортил что-нибудь. Но до сих пор ни один из активов не перебирается с app/assets, только тот, который работает, - это jquery.min.js, который у меня есть через include_tag. Я попытался удалить его и снова попробовать не кубики.

Я пробовал bundle exec rake assets:clean и bundle exec rake assets:precompile, оба из которых работают без проблем. и в комплекте с добавлением драгоценных камней для активов, и каждый раз перезапускался.

Я не уверен, если я пройду через все это неправильно или я пропустил шаг? любой, кто прошел через это раньше, и советы или подсказки были бы высоко оценены.

ответ

4

Вы сказали, что удалили все заявления javascript_include_tag. Предполагая, что вы назвали манифесты app/assets/javascripts/application.js и app/assets/stylesheets/application.css, вам необходимо включить те, в макете:

<%= stylesheet_link_tag "application", :media => "all" %> 
<%= javascript_include_tag "application" %> 

В противном случае, Rails не будет знать, чтобы загрузить ваши файлы манифеста

Кроме того, вы не должны быть используя rake assets:precompile в разработке. Если вы это сделаете, то при изменении файла JS/CSS вам придется перекомпилировать активы до появления изменений.

+0

Спасибо, что сделал трюк. Я предположил, что рельсы автоматически будут смотреть на каждый файл манифеста, а затем переходить через дерево. но это не так. все css выглядит так, как будто это действует, но я вижу, что его загрузка по крайней мере! Спасибо, добрый сэр – TheLegend

Смежные вопросы