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时,他们突然全部工作。