1
我使用Sass :: Engine動態編譯css文件,並且需要將環境和加載路徑傳遞給鏈輪。這在開發工作得很好:生產環境中Rails.application.assets的等效內容是什麼?
def compile_scss
view_context = ActionView::Base.new
environment = Rails.application.assets
# body and filename are instance variables created elsewhere
@compiled_file = Sass::Engine.new(body,
filename: filename,
syntax: :scss,
cache: false,
load_paths: environment.paths,
sprockets: {
context: view_context,
environment: environment
}).render
end
,但在生產中失敗,因爲Rails.application.assets
是nil
。生產中的等價物是什麼?
資源在編譯時從生產中的公用文件夾提供。 – bkunzi01
@ bkunzi01感謝您的回覆。所以也許我在想它錯了?由於資源是預編譯的,並且由ngix提供服務,所以在生產中不需要Rails.application.assets。因此,也許我需要備份一下,看看資產:預編譯(可能?)如何初始化環境並嘗試複製它。 – sammms
是的。通常,在運行「bundle exec rake assets:precompile RAILS_ENV = production」的預編譯資產時,通常會指定將用於編譯的環境配置文件。運行後,您會注意到它將用指紋資產填充公用文件夾。 – bkunzi01