<%= asset_path(path/to/template.html) %>
が使用できる
Erb
プリプロセッサーでJavaScriptをラップすることです
より美しいソリューションを紹介します。
クライアント側でテンプレートが使用されるアプリケーションを考えてみましょう。 テンプレートのプリプロセッサはスリム[ 1 ]です。 プロジェクトでソースコードを整理する方法には焦点を当てません。 すべてのテンプレートを
app/assets/webapp/
ます。 テンプレートディレクトリから
*.html.slim
テンプレートを
*.html.slim
するようにアプリケーションを構成します。
# config/application.rb config.assets.paths << Rails.root.join('app', 'assets', 'webapp') # config/initizlizers/assets_engine.rb Rails.application.assets.register_engine('.slim', Slim::Template) # config/environments/production.rb config.assets.precompile += ['*.html']
特定のテンプレート
app/assets/webapp/rubrics/edit.html.slim
を作成し、JavaScriptからアクセスしたいと思います。 実稼働環境にはそのようなファイルは存在しないため、アドレス
/assets/rubrics/edit.html
に連絡することはできませんが、何か
/assets/rubrics/edit-5eb3bb250d5300736006c8944e436e3f.html
が存在することになります。 論理パス
rubrics/edit.html
とフルパスの対応表は、自動的に生成されるマニフェストファイルにあります。 しかし、それを使用することは常に正当化されるわけではなく、少なくとも多くの追加データが含まれます。
Gem
js_assets
、特定のマスクに一致するファイルの対応表を作成する問題を解決します。
gemをインストールしたら、JavaScriptヘルパーを接続します。
// app/assets/javascripts/application.js //= require app_assets
window.project_assets
テーブルは、変数
window.project_assets
保存されます。
asset_path
ヘルパー
asset_path
は、必要なファイルへの論理パスを引数として受け取り、環境を考慮して、ルートに相対的なパスを返します。
var path = asset_path('rubrics/edit.html') // the function will return for development: // /assets/rubrics/edit.html // and for production // /assets/rubrics/edit-5eb3bb250d5300736006c8944e436e3f.html
ヘルパーの使用可能なファイルのリストの管理(アセットパイプライン処理を考慮)は、フィルターを介して行われます。 デフォルト値は次のとおりです。
JsAssets::List.exclude = ["application.js"] JsAssets::List.allow = ["*.html"]
たとえば、
initializers
を使用して、それらを展開でき
initializers
。
gemのソースコードはgithubにあります。