3

我有一些非標準資產(即文件不是圖像/ JavaScript文件/樣式表,如json和二進制文件),它們位於可安裝的引擎中(不包含isolate_namespace )在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)可見見。例如,對於一個文件app/assets/data/foo.jsonasset_path助手在軌控制檯託管的應用程序給我一個路徑assets/foo.json,但是這條道路行不通,我得到一個

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

錯誤。

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

回答

0

原來,這是一些具有特定名稱的json文件的奇怪行爲。有問題的文件被命名爲schema-[UUID].json。 Rails似乎認爲這些是對某些控制器的調用(即使沒有這種路由,也不是一個schema控制器),它們需要返回json格式的數據。當我將這些文件重命名爲[UUID]-schema.json時,他們突然全部工作。