gpt4 book ai didi

ruby-on-rails - Rails.application.assets 在生产环境中的等价物是什么?

转载 作者:行者123 更新时间:2023-12-03 17:34:33 32 4
gpt4 key购买 nike

我正在使用 Sass::Engine 动态编译 css 文件,我需要将环境和加载路径传递给 sprockets。这在开发中工作得很好:

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.assetsnil .生产中的等价物是什么?

最佳答案

Rails.application.assets 总是 nil在生产中,因为 Assets 是从公共(public)文件夹预编译和提供的(感谢@bkunzi01)。此外,Sprockets 只需要将 Assets 路径传递给它即可运行,而不需要环境。路径可从 Rails.application.config.assets.paths 获得.我能够让我的样式表编译器使用以下方法。

def compile_scss
view_context = ActionView::Base.new
environment = Rails.application.assets || Rails.application.config.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,
}).render
end

关于ruby-on-rails - Rails.application.assets 在生产环境中的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43260852/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com