簡體   English   中英

引擎在 Rails 3.1 中的資產

[英]Engine's assets with Rails 3.1

應該如何在 Rails 3.1 的引擎中提供資產? 它們應該位於何處,是否可以自動包含在內?

最初由 Tomas Celizna 提出

自動加載所有引擎資產文件夾的路徑。

默認情況下不加載資產本身。 這是可以理解的,因為加載是使用require_tree. ,它從當前文件夾(即主應用程序資產的文件夾)加載所有 css/js,但沒有說明引擎資產。

簡單的解決方案是要求用戶在 application.js/css 或其他任何需要的地方要求 js/css。 由於路徑加載正確,用戶只需要指定資產的名稱(我建議使用引擎的名稱)。 例子:

附加到main_app/app/assets/javascripts/application.js

//= require your_engine_name

如果您將 js 拆分為不同的文件,您的文件your_engine_name/app/assets/javascripts/your_engine_name.js可能具有以下內容:

//= require_tree .

這將加載your_engine_name/app/assets/javascripts/中的所有 js 文件,作為“。” 指的是本地文件夾(在這種情況下是您引擎的 javascripts 的文件夾)。

請注意,當設置config.use_sprockets時, ActionView::Helpers::AssetTagHelper.register_javascript_expansion似乎沒有任何效果。 我希望他們至少會在這種情況下發出警告。

如果您有安裝引擎的 rake 任務,那么您可以對 application.js 執行 append。

用戶包含它的另一種方法是在 erb 布局中插入<%= javascript_include_tag "your_engine_name" %>

我認為沒有辦法讓它自動插入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM