MyEngine::Frontend 中的链轮::Rails::Helper::AssetNotPrecompiledError#new

问题描述 投票:0回答:1

资产

hero_banner.jpg
未声明在生产中进行预编译。 在
app/assets/config/manifest.js
中声明指向您的资产的链接。

//= link hero_banner.jpg

Rails.application.config.assets.paths << MyEngine::Engine.root.join('app', 'apps', 'themes', 'default_theme','assets','stylesheets')
Rails.application.config.assets.paths << MyEngine::Engine.root.join('app', 'apps', 'themes', 'default_theme','assets', 'images')

我已在配置中的 asset.rb 文件中添加了这一行,以便预编译常规资源之外的一些其他资源。 我必须在清单文件中再次添加这些行才能查看视图上的任何更改。

//= link default_theme.css
//= link new_theme.css
//= link hero_banner.jpg

css 文件位于 stylesheets 文件夹中,类似的,hero_banner 位于预编译资源的 images 文件夹中。我应该如何一次性编译所有文件,而不是像这样编写每个文件?

ruby-on-rails assets asset-pipeline ruby-on-rails-7 rails-engines
1个回答
0
投票

您可以使用引擎的清单文件:

// my_engine/app/assets/config/my_engine_manifest.js

//= link_directory ../../apps/themes/default_theme/assets/stylesheets
//= link_tree ../../apps/themes/default_theme/assets/images

然后添加一个初始化程序来预编译此清单:

# my_engine/lib/my_engine/engine.rb

initializer "my_engine.themes" do |app|
  app.config.assets.precompile << "my_engine_manifest.js"
end
© www.soinside.com 2019 - 2024. All rights reserved.