在Ruby on Rails 3.2.9中,有一种方法可以拦截资产请求并重新映射所请求的URL。
例如,对于/assets/javascripts/app.js的请求,我想拦截请求并删除javascripts /。我已经尝试过application.rb
config.asset_path = proc { |path|
path.slice! 'javascripts/'
}
答案 0 :(得分:1)
我不知道有什么方法可以拦截对资产的请求,我非常怀疑有一个或者根本就没有。
仅仅因为它不适用于编译资产。如果资产位于具有完全不同软件堆栈的另一台服务器上,该怎么办?例如,如果有人选择在Amazon S3上托管资产,那么请求如何被截获呢?
如果您真的需要此功能并且您自行托管资产,那么最好的方法是配置您的Web服务器以重定向请求。
查看Apache的RewriteEngine
或nginx的HttpRewriteModule
。它们提供了URL重写的机制。 (我猜大多数生产级Web服务器确实都有类似的东西)