3

isolate_namespaceのマウント可能なエンジン(なし)内に存在するいくつかの非標準アセット(つまり、jsonやバイナリファイルなどのimages / javascriptファイル/スタイルシートではないファイル)がありますapp/assets/data。これらをアセットパイプラインの一部にしたいと思います(たとえば、画像と同じように)。それらをアセットパスコレクションに追加できます。例:

class Engine < ::Rails::Engine
  config.after_initialize do
    Rails.application.config.assets.paths << root.join("app", "assets", "data")
  end
end

Railsコンソールで、アセットがアセットパイプラインに表示されていることがわかります(例:経由Rails.application.assets[]ActionController::Base.helpers.asset_path)。たとえば、ファイルの場合、ホスティングアプリのRailsコンソールapp/assets/data/foo.jsonのヘルパーがパスを教えてくれますが、そのパスが機能しない場合は、asset_pathassets/foo.json

ActionController::RoutingError (No route matches [GET] "/assets/foo.json")

エラー。

ホスティングRailsアプリにこれらのファイルを提供させるにはどうすればよいですか?

4

1 に答える 1

0

結局のところ、これは特定の名前のjsonファイルでの奇妙な動作です。問題のファイルには、のような名前が付けられていますschema-[UUID].jsonschemaRailsは、これらがjson形式のデータを戻したいコントローラーへの呼び出しであると考えているようです(そのようなルートもコントローラーもありませんが)。ファイルの名前をに変更する[UUID]-schema.jsonと、突然動作します。

于 2012-10-05T18:27:14.090 に答える