Rails Asset Pipeline: Возвращает дайджест версию, когда запрашивается не дайджест - PullRequest
2 голосов
/ 07 марта 2012

Я предоставляю клиенту фрагмент кода для вставки в его статический HTML, который ссылается на мой файл application.js.

Так как это находится на странице, которую я не могу контролировать, и я не хочу просить клиента обновлять его фрагмент каждый раз, когда я нажимаю релиз, мне интересно, есть ли способ вернутьсямоя версия digest-application.js, когда запрашивается нормальная версия, чтобы браузер получал самую последнюю версию?

Я могу установить временную метку очистки кэша скрипта src, но не уверен, что этодействительно надежный.

Есть мысли о том, как лучше всего справиться с этим?

Ответы [ 2 ]

1 голос
/ 07 марта 2012

мы делаем нечто подобное для нашего "публичного" javascript, который интегрирован в стороннее веб-приложение.

способ, которым мы делаем это, путем создания символической ссылки на нашем ресурсе-сервере во время развертывания capistrano, которая указывает на не дайджест-имя файла. поскольку они являются просто файлами на нашем веб-сервере, Apache сделает все остальное.

0 голосов
/ 07 марта 2012

Я думаю, что изящный способ - использовать контроллер для перенаправления ресурсов 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
...