Rails 3.2.9拦截重新映射的资产请求

时间:2012-12-19 15:51:31

标签: ruby-on-rails

在Ruby on Rails 3.2.9中,有一种方法可以拦截资产请求并重新映射所请求的URL。

例如,对于/assets/javascripts/app.js的请求,我想拦截请求并删除javascripts /。我已经尝试过application.rb

config.asset_path = proc { |path| 
    path.slice! 'javascripts/'
}

1 个答案:

答案 0 :(得分:1)

我不知道有什么方法可以拦截对资产的请求,我非常怀疑有一个或者根本就没有。

仅仅因为它不适用于编译资产。如果资产位于具有完全不同软件堆栈的另一台服务器上,该怎么办?例如,如果有人选择在Amazon S3上托管资产,那么请求如何被截获呢?

如果您真的需要此功能并且您自行托管资产,那么最好的方法是配置您的Web服务器以重定向请求。

查看Apache的RewriteEngine或nginx的HttpRewriteModule。它们提供了URL重写的机制。 (我猜大多数生产级Web服务器确实都有类似的东西)