从Rails Controller访问资产路径


70

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

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

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

Answers:


114
ActionController::Base.helpers.asset_path("configuration.yml")

最好将configuration.yml放在不同的文件夹中,以将javascript与非javascript文件分开。


1
谢谢!我不需要使用/assets/。我可以只调用ActionController :: Base.helpers.asset_path(“ configuration.yml”)我也曾考虑过将yml文件放在另一个文件夹中,尝试将其直接添加到app / assets文件夹中,但是我无法访问它。无论如何,谢谢你的建议。
Marcel M.

1
@MarcelM。您需要在application.rb中的搜索路径中添加其他文件夹。像这样config.assets.paths << Rails.root.join("app", "assets", "yml")
Paulo Casaretto

这被弃用的Rails 4
阿吉斯

11
@Agis-也许包括新推荐的解决方案。
迈克尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.