如何自定义资产管道的“子路径”的URL路径?

时间:2013-12-04 19:56:16

标签: ruby-on-rails ruby

我注意到有关Rails和Sprockets的所有内容都属于'domain / assets /'URL,但我对某些试图获取CSS和图像文件的文件存在此问题:

somedomain/assets/css/{filename}
somedomain/assets/images/{img_name}

我正在尝试找到一些方法来拆分这些资产的路径,这样它们就不会进入相同的/资产路径,以便URL工作。我想也许我可以在配置中做到这一点,但除了重命名config.assets.prefix或routes.rb之外我没有找到任何其他内容,因为我觉得像“get / assets / css”这样的东西会起作用但是我不知道在哪里指出它。

在任何情况下,此时我都被卡住了(顺便说一句,这已经开发了。在生产中,我遇到了一个不同的问题,javascript_include_tag试图转到/ javascripts路径)。 / p>

2 个答案:

答案 0 :(得分:0)

我在config:

中的application.rb中这样做了
config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/css"

答案 1 :(得分:0)

得到了答案。对不起,如果我的问题和例子不够清楚......我总是很糟糕......

无论如何我看了sprockets文档(而不是sprockets-rails文档),这就是我做的(修改后的config.ru):

map '/assets/images' do
  environment = Sprockets::Environment.new
  environment.append_path 'app/assets/images'
  run environment
end

map '/' do
  run Rails.application
end

不幸的是,我不完全理解config.ru中发生了什么,除了整个应用程序从这里开始的事实,但看起来这个映射让我以这种方式提供它(当然,像AWS这样的东西我可以使用nginx,但对于Heroku和整体而言,这似乎使事情变得更容易。)