2013-05-02 5 views
0

Я начал играть с Rails4, и я не могу заставить конвейер активов работать правильно. Мой сайт отлично загружается в моей промежуточной среде, за исключением того, что ни один из моих css или js не объединяется и не минимизируется, как в Rails 3. Есть ли что-то, что изменилось между версиями?Rails 4 Asset Pipeline не объединяет или нивелирует активы

Вот мой staging.rb файл среды:

MyApp::Application.configure do 
    config.cache_classes = true 
    config.eager_load = true 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
    config.serve_static_assets = false 
    config.assets.js_compressor = :uglifier 
    config.assets.compile = false 
    config.assets.digest = true 
    config.assets.version = '1.0' 
    config.log_level = :info 
    config.cache_store = :dalli_store 
    config.i18n.fallbacks = true 
    config.active_support.deprecation = :notify 
    config.log_formatter = ::Logger::Formatter.new 
end 

ответ

2

Это было вызвано проблемой с моей стороны. Как-то я поставил свои переменные окружения на моем сервере к «развитию», поэтому он никогда не был запущен этот файл размещения ...

Что касается ответа @ frandroid, вы не хотите, чтобы установить

config.assets.compile = true 

, как это будет лениво компилировать активы в производство. Вы должны убедиться, что они полностью скомпилированы во время нажатия файлов на сервер или перед началом работы, чтобы обеспечить максимальную производительность.

Вот мой окончательный staging.rb файл:

MyApp::Application.configure do 
    config.cache_classes = true 
    config.eager_load = true 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
    config.serve_static_assets = false 
    config.assets.js_compressor = :uglifier 
    config.assets.compile = false 
    config.assets.digest = true 
    config.assets.version = '1.0' 
    config.log_level = :info 
    config.cache_store = :dalli_store, ENV["MEMCACHIER_SERVERS"].split(","), 
        {:username => ENV["MEMCACHIER_USERNAME"], 
        :password => ENV["MEMCACHIER_PASSWORD"]} 
    config.i18n.fallbacks = true 
    config.active_support.deprecation = :notify 
    config.log_formatter = ::Logger::Formatter.new 
end 
+0

У меня та же проблема. Единственный способ получить мои изображения из конвейера активов для отображения - это изменить 'config.assets.compile = true'. Это действительно странно. Если я запустил новое приложение для работы с ванилью и добавлю изображение в '/ assets/images/image.png', я могу просмотреть его только при создании этой переменной. В противном случае даже с предварительно скомпилированными активами он не будет отображаться. Есть предположения? – kobaltz

+0

@kobaltz: Я думаю, вам нужно использовать для scss 'image_url ('image.jpg')' без добавления '/ assets/images /'. Только имя изображения в папке с изображениями. Если в изображении есть папка, то 'image_url ('new/image.jpg')' и для просмотра страниц только 'image_tag', что поможет с' config.assets.compile = false' –