我試圖在部署到生產環境時預編譯資產。我也嘗試使用capistrano在服務器上進行首次安裝時將其自動化。看起來在資產預編譯過程中沒有任何初始化器正在被加載。資產預編譯期間加載初始化程序
我面對這兩個問題
第一次安裝我生成對飛一個初始化文件(初始化/ freshinstall.rb)與以下內容
config.assets。 initialize_on_precompile =假
使預編譯不檢查不存在尚未
我的數據庫也有一些供應商的文件,它們的位置在資產管道設置,並且被放置在單獨的初始化文件初始化/ vendor.rb
MyApp的:: Application.config.assets.paths < <「#Rails.root}/vendor/assets/images/xxxx「< <」#{Rails.root}/vendor/assets/images/xxxx/helpers「 MyApp :: Application.config.assets.paths < <」#{Rails.root}/vendor/assets/stylesheets/xxxx「 MyApp :: Application.config.assets.paths < <」#{Rails.root}/vendor/assets/stylesheets/yyyy「< <」#{Rails.root}/vendor/assets/images/yyyy「
當capistrano運行資產預編譯任務時,它無法找到供應商路徑或停止查看數據庫。這使我得出結論,即初始化器沒有被加載。經歷了一些stackoverflow問題。我甚至添加了railtie config/application.rb
module AssetsInitializers
class Railtie < Rails::Railtie
initializer "assets_initializers.initialize_rails",
:group => :assets do |app|
require "#{Rails.root}/config/initializers/freshinstall.rb"
require "#{Rails.root}/config/initializers/vendor.rb"
end
end
end
但我仍然沒有看到任何初始化程序正在加載。我可以獲得有關軌道應用程序啓動過程的內部信息,以及爲什麼初始化程序在資產預先編譯過程中未加載的原因。
一些文件將有助於理解這一點。 Rails文檔對於railtie和初始化方法來說是非常小的。 http://guides.rubyonrails.org/configuring.html
預先感謝您