feat: Global performance improve add no-cache for html

This commit is contained in:
chenyh 2022-06-12 19:46:55 +08:00
parent 2eac584166
commit ec95dd532a
13 changed files with 60 additions and 18 deletions
src/nginxconfig
generators/conf
i18n
de/templates/global_sections
en/templates/global_sections
es/templates/global_sections
fr/templates/global_sections
pl/templates/global_sections
pt-br/templates/global_sections
ru/templates/global_sections
zh-cn/templates/global_sections
zh-tw/templates/global_sections
templates/global_sections
util

View File

@ -41,6 +41,17 @@ export default (domains, global) => {
}; };
if (global.logging.accessLog.computed) config['location = /robots.txt'].access_log = 'off'; if (global.logging.accessLog.computed) config['location = /robots.txt'].access_log = 'off';
if (global.performance.changesTakeEffect.computed) {
// Take effect in time for html
config['# Take effect in time for html'] = '';
const loc = `location ~* \\.(?:${extensions.html})$`;
config[loc] = {
add_header: 'Cache-Control "no-cache"',
};
if (global.logging.accessLog.computed) config[loc].access_log = 'off';
}
if (domains.every(d => d.routing.root.computed)) { if (domains.every(d => d.routing.root.computed)) {
if (global.performance.assetsExpiration.computed === global.performance.mediaExpiration.computed) { if (global.performance.assetsExpiration.computed === global.performance.mediaExpiration.computed) {
if (global.performance.assetsExpiration.computed) { if (global.performance.assetsExpiration.computed) {
@ -124,6 +135,7 @@ export default (domains, global) => {
config.brotli_types = gzipTypes; config.brotli_types = gzipTypes;
} }
// Done! // Done!
return config; return config;
}; };

View File

@ -27,6 +27,8 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Gzip Komprimierung', gzipCompression: 'Gzip Komprimierung',
enableGzipCompression: `${common.enable} Gzip Komprimierung`, enableGzipCompression: `${common.enable} Gzip Komprimierung`,
brotliCompression: 'Brotli Komprimierung', brotliCompression: 'Brotli Komprimierung',

View File

@ -27,6 +27,8 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Gzip compression', gzipCompression: 'Gzip compression',
enableGzipCompression: `${common.enable} gzip compression`, enableGzipCompression: `${common.enable} gzip compression`,
brotliCompression: 'Brotli compression', brotliCompression: 'Brotli compression',

View File

@ -26,7 +26,9 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Compresión Gzip', gzipCompression: 'Compresión Gzip',
enableGzipCompression: `${common.enable} compresión gzip`, enableGzipCompression: `${common.enable} compresión gzip`,
brotliCompression: 'Compresión Brotli', brotliCompression: 'Compresión Brotli',
@ -38,5 +40,6 @@ export default {
expirationForMedia: 'Expiración para media', expirationForMedia: 'Expiración para media',
expirationForSvgs: 'Expiración para SVGs', expirationForSvgs: 'Expiración para SVGs',
expirationForFonts: 'Expiración para fuentes', expirationForFonts: 'Expiración para fuentes',
performance: 'Rendimiento', performance: 'Rendimiento',
}; };

View File

@ -27,6 +27,8 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Compression Gzip', gzipCompression: 'Compression Gzip',
enableGzipCompression: `${common.enable} la compression gzip`, enableGzipCompression: `${common.enable} la compression gzip`,
brotliCompression: 'Compression Brotli', brotliCompression: 'Compression Brotli',

View File

@ -27,6 +27,8 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Kompresja gzip', gzipCompression: 'Kompresja gzip',
enableGzipCompression: `${common.enable} kompresję gzip`, enableGzipCompression: `${common.enable} kompresję gzip`,
brotliCompression: 'Kompresja brotli', brotliCompression: 'Kompresja brotli',

View File

@ -27,6 +27,8 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Compressão Gzip', gzipCompression: 'Compressão Gzip',
enableGzipCompression: `${common.enable} compressão gzip`, enableGzipCompression: `${common.enable} compressão gzip`,
brotliCompression: 'Compressão Brotli', brotliCompression: 'Compressão Brotli',

View File

@ -27,6 +27,8 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Gzip сжатие', gzipCompression: 'Gzip сжатие',
enableGzipCompression: `${common.enable} gzip сжатие`, enableGzipCompression: `${common.enable} gzip сжатие`,
brotliCompression: 'Brotli сжатие', brotliCompression: 'Brotli сжатие',

View File

@ -34,6 +34,8 @@ export default {
brotliIsANonStandardModule: 'Brotli 并不是一个 standard NGINX 模块, 请查看 ', brotliIsANonStandardModule: 'Brotli 并不是一个 standard NGINX 模块, 请查看 ',
brotliGoogleNgxBrotliProject: 'Google ngx_brotli 项目', brotliGoogleNgxBrotliProject: 'Google ngx_brotli 项目',
brotliForBuildingNginxWithBrotli: ' 以构建支持 Brotli 的 NGINX!', brotliForBuildingNginxWithBrotli: ' 以构建支持 Brotli 的 NGINX!',
changesTakeEffect: '变更及时生效',
enableChangesTakeEffect: `${common.enable}变更及时生效`,
expirationForAssets: '资源有效期', expirationForAssets: '资源有效期',
expirationForMedia: '媒体资源有效期', expirationForMedia: '媒体资源有效期',
expirationForSvgs: 'SVGs有效期', expirationForSvgs: 'SVGs有效期',

View File

@ -27,6 +27,8 @@ THE SOFTWARE.
import common from '../../common'; import common from '../../common';
export default { export default {
changesTakeEffect: 'Changes take effect in time',
enableChangesTakeEffect: `${common.enable} changes take effect in time`,
gzipCompression: 'Gzip 壓縮', gzipCompression: 'Gzip 壓縮',
enableGzipCompression: `${common.enable}Gzip壓縮`, enableGzipCompression: `${common.enable}Gzip壓縮`,
brotliCompression: 'Brotli 壓縮', brotliCompression: 'Brotli 壓縮',

View File

@ -26,6 +26,25 @@ THE SOFTWARE.
<template> <template>
<div> <div>
<div class="field is-horizontal">
<div class="field-label">
<label class="label">{{ $t('templates.globalSections.performance.changesTakeEffect') }}</label>
</div>
<div class="field-body">
<div class="field">
<div :class="`control${changesTakeEffectChanged ? ' is-changed' : ''}`">
<div class="checkbox">
<PrettyCheck v-model="changesTakeEffect" class="p-default p-curve p-fill p-icon">
{{ $t('templates.globalSections.performance.enableChangesTakeEffect') }}
</PrettyCheck>
</div>
</div>
</div>
</div>
</div>
<div class="field is-horizontal"> <div class="field is-horizontal">
<div class="field-label"> <div class="field-label">
<label class="label">{{ $t('templates.globalSections.performance.gzipCompression') }}</label> <label class="label">{{ $t('templates.globalSections.performance.gzipCompression') }}</label>
@ -127,23 +146,8 @@ THE SOFTWARE.
</div> </div>
</div> </div>
<div class="field is-horizontal">
<div class="field-label">
<label class="label">{{ $t('templates.globalSections.performance.expirationForFonts') }}</label>
</div>
<div class="field-body">
<div class="field">
<div :class="`control${fontsExpirationChanged ? ' is-changed' : ''}`">
<input
v-model="fontsExpiration"
class="input"
type="text"
:placeholder="$props.data.fontsExpiration.default"
/>
</div>
</div>
</div>
</div>
</div> </div>
</template> </template>
@ -154,6 +158,10 @@ THE SOFTWARE.
import PrettyCheck from '../inputs/checkbox'; import PrettyCheck from '../inputs/checkbox';
const defaults = { const defaults = {
changesTakeEffect: {
default: true,
enabled: true,
},
gzipCompression: { gzipCompression: {
default: true, default: true,
enabled: true, enabled: true,
@ -178,6 +186,7 @@ THE SOFTWARE.
default: '7d', default: '7d',
enabled: true, enabled: true,
}, },
}; };
export default { export default {

View File

@ -45,6 +45,7 @@ const globalMap = {
python_server: ['python', 'pythonServer'], python_server: ['python', 'pythonServer'],
changesTakeEffect: ['performance', 'changesTakeEffect', oldBool],
gzip: ['performance', 'gzipCompression', oldBool], gzip: ['performance', 'gzipCompression', oldBool],
brotli: ['performance', 'brotliCompression', oldBool], brotli: ['performance', 'brotliCompression', oldBool],
expires_assets: ['performance', 'assetsExpiration'], expires_assets: ['performance', 'assetsExpiration'],

View File

@ -37,4 +37,5 @@ export const extensions = {
'docx?|dotx?|docm|dotm|' + 'docx?|dotx?|docm|dotm|' +
'xlsx?|xltx?|xlsm|xltm|' + 'xlsx?|xltx?|xlsm|xltm|' +
'pptx?|potx?|pptm|potm|ppsx?', 'pptx?|potx?|pptm|potm|ppsx?',
html: 'html',
}; };