Rails Asset Pipeline:请求非摘要时返回摘要版本

时间:2012-03-07 10:41:53

标签: javascript ruby-on-rails asset-pipeline

我正在为客户端提供一个片段,以粘贴到引用我的application.js文件的静态html中。

因为它位于我无法控制的页面上,而且我不想让客户端每次推送版本时都更新其代码段,我想知道是否有办法返回我的摘要 - application.js版本当请求正常版本以确保浏览器获得最新版本时?

我可以在脚本src上设置缓存清除时间戳,但不确定这是否真的可靠。

有关处理此问题的最佳方法的任何想法?

2 个答案:

答案 0 :(得分:1)

我们正在为我们的“公共”javascript做类似的事情,它已集成到第三方网络应用程序中。

我们这样做的方法是在capistrano部署期间在我们的资产服务器上创建一个符号链接,指向文件的非摘要名称。因为它们只是我们网络服务器上的文件,所以其余的都是apache。

答案 1 :(得分:0)

我认为必须优雅的方法是让一些Controller对你的资产进行一些重定向302。

您可以将代码链接/public-assets/my_assets

粘贴到您的客户端

在您的路线中创建路线:

match '/public-assets/:asset_name' => 'PublicAsset#index'

并创建您的控制器PublicAssetController

class PublicAssetContoller < ApplicationController::Base

  def index
    redirect_to asset_path(params[:asset_name])
  end

end