2017-01-18 2 views
2

У меня есть приложение для работы с полимерами (одностраничное приложение), размещенное на firebase. Когда я использую новую версию для firebase, я хочу, чтобы firebase перезагрузил исходный код javascript вместо использования кешированных. Можно ли это сделать через firebase.json? Если да, то как? Или мне нужно вручную добавить URL-адрес перебора кэша в мой вывод сборки? БлагодаряFirebase Hosting: скрипты для распаковки кеша при развертывании

ответ

6

Добавление Webpack или подобный инструмент для вашей сборки, вероятно, самый простой путь, так как это не в настоящее время способ достичь желаемого результата с Firebase непосредственно:

How Can I Make Webpack Use a Cache-Busting Suffix?

Если вы в порядке полного удаления кэша, вы можете просто установить соответствующие заголовки для файлов, которые вы не хотите, кэшированных в firebase.json:

{ 
    ... 
    "headers": [{ 
     "source": "build.js", 
     "headers": [{ 
     "key": "Cache-Control", 
     "value": "max-age=0" 
     }] 
    }], 
    ... 
} 

Смотрите здесь для более подробной информации: https://firebase.google.com/docs/hosting/full-config#headers

+1

, но это приведет к сборке build.js при каждой перезагрузке браузера. Я бы предпочел, если он будет только один раз до следующего развертывания новой версии. – user3240644

+0

@ user3240644 - Это правда. Я не уверен, что это возможно, используя только «firebase.json». Большинство людей в конечном итоге решают это через Webpack: http://stackoverflow.com/questions/39238163/how-can-i-make-webpack-use-a-cache-busting-suffix – TMan

+0

Я бы предложил удалить «firebase.json» '(или, по крайней мере, переместить его ниже части, связанной с кэшем), потому что он вообще не отвечает на вопрос. OP явно упоминает «переполнение кеша». –