繁体   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