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托管应用程序的 rails 控制台中的助手给了我一个路径assets/foo.json,但是该路径不起作用,我得到一个

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

错误。

如何让托管 Rails 应用程序提供这些文件?

4

1 回答 1

0

事实证明,对于具有特定名称的 json 文件,这是一些奇怪的行为。有问题的文件被命名为schema-[UUID].json. schemaRails 似乎认为这些是对某些需要返回 json 格式数据的控制器(即使没有这样的路由,也没有控制器)的调用。当我将文件重命名为 时[UUID]-schema.json,它们突然起作用了。

于 2012-10-05T18:27:14.090 回答