从 Rails 控制器访问资产路径

Posted

技术标签:

【中文标题】从 Rails 控制器访问资产路径【英文标题】:Access Asset Path from Rails Controller 【发布时间】:2011-12-11 05:48:26 【问题描述】:

我正在共享一个配置 yml 文件客户端,我还需要在服务器端加载它,我已将它放在 app/assets/javascripts/configuration.yml 中

我可以在视图中使用 #asset_path 'configuration.yml' 来获取路径,但不能在控制器中使用。我可以使用“#Rails.root/app/assets/javascripts/configuration.yml”直接访问,但是在部署文件名时会附加摘要字符串。

如何从控制器获得相同的路径?

【问题讨论】:

【参考方案1】:
ActionController::Base.helpers.asset_path("configuration.yml")

将 configuration.yml 放在不同的文件夹中以将 javascript 与非 javascript 文件分开也可能会很好。

【讨论】:

谢谢!我不需要使用/assets/。我可以调用 ActionController::Base.helpers.asset_path("configuration.yml") 我还考虑将 yml 文件放在另一个文件夹中,尝试将其直接添加到 app/assets 文件夹中,但我无法访问它。无论如何感谢您的建议。 @MarcelM。您需要将其他文件夹添加到 application.rb 中的搜索路径。像这样config.assets.paths << Rails.root.join("app", "assets", "yml") 这在 Rails 4 中已被弃用。 @Agis — 可能包括新的推荐解决方案。

以上是关于从 Rails 控制器访问资产路径的主要内容,如果未能解决你的问题,请参考以下文章