为什么不预编译js和css文件

时间:2014-07-26 06:45:26

标签: javascript css ruby-on-rails deployment compilation

当部署服务器未编译样式表和javascripts时。直到最后一刻资产编译。 Ruby 2.1.2p95,Nginx,Unicorn。 我的资产路径: 应用

--->assets
----->javascripts
------->admin
------->design
----->stylesheets
------->admin
------->design
----------->new_design
----------->new_design_work_page

我的production.rb

  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 = true
  config.assets.digest = true
  config.assets.version = '1.0'
  config.log_level = :info
  config.assets.precompile += %w( design/*, admin/*, design/new_design/*.css.scss,
    design/new_design_work_page/*.css.scss)
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new

application.rb中:

require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(*Rails.groups)
module Izotorg
  class Application < Rails::Application
    config.autoload_paths += %W(#{config.root}/app/models/ckeditor)
    config.assets.precompile += %w( design/*, admin/*, design/new_design/*.css.scss,
    design/new_design_work_page/*.css.scss)
    config.time_zone = 'Moscow'
    config.encoding = "utf-8"
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
    config.i18n.default_locale = :ru
  end
end

1 个答案:

答案 0 :(得分:0)

<强>目录

好的,我想你可能想看一下Rails globbing,好像你有一个&#34;深&#34;文件夹,它可能无法在没有正确定义文件夹模式的情况下将文件附加到资产管道

您可以在资产manifest文件或config.assets.precompile选项中定义通配模式:

-

<强>清单

如果您不介意将所有新文件放入这样的中央application.css文件中:

#app/assets/javascripts/application.css
/*
  *= require_tree /design
*/

这将在您预编译时获取该文件的内容,并将它们放入主application.css文件中。这显然增加了application.css文件的大小 - 使得知道如何在清单系统之外包含单个文件夹/文件更有益

-

<强>管道

如果您想保留多个不同的文件,您需要在Rails资产管道中设置config.assets.precompile选项:

#config/environments/production.rb
config.assets.precompile += ["design/*"]