#javascript #amazon-s3 #webpack #amazon-cloudfront
#javascript #amazon-s3 #webpack #amazon-cloudfront
Вопрос:
Когда я создаю свое приложение с использованием vue cli и webpack, я добавляю два плагина:
new CompressionPlugin({
filename: '[path].gz[query]',
algorithm: 'gzip',
test: /.(js|css|html|svg)$/,
threshold: 8192,
minRatio: 0.8,
}),
new BrotliPlugin({
//brotli plugin
asset: '[path].br[query]',
test: /.(js|css|html|svg)$/,
threshold: 10240,
minRatio: 0.8,
}),
Эти плагины создают файлы br и gz для каждого файла, создаваемого webpack. например app.css
:
app.a35d9d23.css
app.a35d9d23.css.gz
app.a35d9d23.css.br
Теперь я перешел на обслуживание приложения в cloudfront и s3.
Мой вопрос в том, нужно ли мне генерировать эти файлы и загружать их в s3? или cloudfront и s3 знают, как обслуживать себя (они создают файлы br / gz)?
Ответ №1:
Вы не должны генерировать файлы gz и br, CloudFront не будет их использовать. Эти файлы полезны при использовании веб-сервера (apache, nginx), поскольку их можно оптимизировать для обслуживания предварительно сжатых файлов вместо сжатия их на лету.
При использовании CloudFront вы можете включить сжатие, которое автоматически позаботится об обслуживании сжатых файлов. Однако есть некоторые оговорки, например, существует ограничение на размер файла, и он поддерживает только gzip, но, с другой стороны, это просто флажок, который вы включаете.