簡體   English   中英

Rails路由可安裝引擎中的非標准資產

[英]Rails routes for non-standard assets in a mountable engine

我有一些非標准資產(即不是圖像/ javascript文件/樣式表的文件,如json和二進制文件), isolate_namespace位於app/assets/data的可安裝引擎(沒有isolate_namespaceapp/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 )。 例如,對於文件app/assets/data/foo.json ,主機應用程序的rails控制台中的asset_path幫助程序為我提供了路徑assets/foo.json ,但是該路徑不起作用,我得到了一個

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

錯誤。

如何獲得托管Rails應用程序來提供這些文件?

事實證明,這是json文件具有特定名稱的一些奇怪行為。 有問題的文件的名稱類似於schema-[UUID].json Rails似乎認為這些是對某些控制器的調用(即使沒有這樣的路由,也沒有schema控制器)需要json格式的數據。 當我將文件重命名為[UUID]-schema.json ,它們突然工作。

暫無
暫無

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

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