mirror of
				https://github.com/digitalocean/nginxconfig.io.git
				synced 2025-11-04 18:28:17 +08:00 
			
		
		
		
	Add option to disable caching for HTML content (#366)
* feat: Global performance improve add no-cache for html * feat: Disable HTML caching * fix: eslint check * Clean up
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2020 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -41,6 +41,17 @@ export default (domains, global) => {
 | 
			
		||||
    };
 | 
			
		||||
    if (global.logging.accessLog.computed) config['location = /robots.txt'].access_log = 'off';
 | 
			
		||||
 | 
			
		||||
    if (global.performance.disableHtmlCaching.computed) {
 | 
			
		||||
        // Disable HTML caching for changes take effect in time
 | 
			
		||||
        config['# Disable HTML caching'] = '';
 | 
			
		||||
        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 (global.performance.assetsExpiration.computed === global.performance.mediaExpiration.computed) {
 | 
			
		||||
            if (global.performance.assetsExpiration.computed) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -27,6 +27,8 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching', // TODO: translate
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate
 | 
			
		||||
    gzipCompression: 'Gzip Komprimierung',
 | 
			
		||||
    enableGzipCompression: `${common.enable} Gzip Komprimierung`,
 | 
			
		||||
    brotliCompression: 'Brotli Komprimierung',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -27,6 +27,8 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching',
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching',
 | 
			
		||||
    gzipCompression: 'Gzip compression',
 | 
			
		||||
    enableGzipCompression: `${common.enable} gzip compression`,
 | 
			
		||||
    brotliCompression: 'Brotli compression',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -26,7 +26,9 @@ THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
export default {    
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching', // TODO: translate
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate
 | 
			
		||||
    gzipCompression: 'Compresión Gzip',
 | 
			
		||||
    enableGzipCompression: `${common.enable} compresión gzip`,
 | 
			
		||||
    brotliCompression: 'Compresión Brotli',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -27,6 +27,8 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching', // TODO: translate
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate
 | 
			
		||||
    gzipCompression: 'Compression Gzip',
 | 
			
		||||
    enableGzipCompression: `${common.enable} la compression gzip`,
 | 
			
		||||
    brotliCompression: 'Compression Brotli',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -27,6 +27,8 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching', // TODO: translate
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate
 | 
			
		||||
    gzipCompression: 'Kompresja gzip',
 | 
			
		||||
    enableGzipCompression: `${common.enable} kompresję gzip`,
 | 
			
		||||
    brotliCompression: 'Kompresja brotli',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -27,6 +27,8 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching',  // TODO: translate
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching',  // TODO: translate
 | 
			
		||||
    gzipCompression: 'Compressão Gzip',
 | 
			
		||||
    enableGzipCompression: `${common.enable} compressão gzip`,
 | 
			
		||||
    brotliCompression: 'Compressão Brotli',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -27,6 +27,8 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching', // TODO: translate
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate
 | 
			
		||||
    gzipCompression: 'Gzip сжатие',
 | 
			
		||||
    enableGzipCompression: `${common.enable} gzip сжатие`,
 | 
			
		||||
    brotliCompression: 'Brotli сжатие',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -27,8 +27,10 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: '禁用 HTML 缓存',
 | 
			
		||||
    enableDisableHtmlCaching: '禁用 HTML 缓存',
 | 
			
		||||
    gzipCompression: 'Gzip 压缩',
 | 
			
		||||
    enableGzipCompression: `${common.enable}Gzip压缩`,
 | 
			
		||||
    enableGzipCompression: `${common.enable} Gzip 压缩`,
 | 
			
		||||
    brotliCompression: 'Brotli 压缩',
 | 
			
		||||
    enableBrotliCompression: `${common.enable} Brotli 压缩`,
 | 
			
		||||
    brotliIsANonStandardModule: 'Brotli 并不是一个 standard NGINX 模块, 请查看 ',
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,8 @@ THE SOFTWARE.
 | 
			
		||||
import common from '../../common';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    disableHtmlCaching: 'Disable HTML caching', // TODO: translate
 | 
			
		||||
    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate
 | 
			
		||||
    gzipCompression: 'Gzip 壓縮',
 | 
			
		||||
    enableGzipCompression: `${common.enable} Gzip 壓縮`,
 | 
			
		||||
    brotliCompression: 'Brotli 壓縮',
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,23 @@ THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
    <div>
 | 
			
		||||
        <div class="field is-horizontal">
 | 
			
		||||
            <div class="field-label">
 | 
			
		||||
                <label class="label">{{ $t('templates.globalSections.performance.disableHtmlCaching') }}</label>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="field-body">
 | 
			
		||||
                <div class="field">
 | 
			
		||||
                    <div :class="`control${disableHtmlCachingChanged ? ' is-changed' : ''}`">
 | 
			
		||||
                        <div class="checkbox">
 | 
			
		||||
                            <PrettyCheck v-model="disableHtmlCaching" class="p-default p-curve p-fill p-icon">
 | 
			
		||||
                                {{ $t('templates.globalSections.performance.enableDisableHtmlCaching') }}
 | 
			
		||||
                            </PrettyCheck>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="field is-horizontal">
 | 
			
		||||
            <div class="field-label">
 | 
			
		||||
                <label class="label">{{ $t('templates.globalSections.performance.gzipCompression') }}</label>
 | 
			
		||||
@@ -154,6 +171,10 @@ THE SOFTWARE.
 | 
			
		||||
    import PrettyCheck from '../inputs/checkbox';
 | 
			
		||||
 | 
			
		||||
    const defaults = {
 | 
			
		||||
        disableHtmlCaching: {
 | 
			
		||||
            default: false,
 | 
			
		||||
            enabled: true,
 | 
			
		||||
        },
 | 
			
		||||
        gzipCompression: {
 | 
			
		||||
            default: true,
 | 
			
		||||
            enabled: true,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2020 DigitalOcean
 | 
			
		||||
Copyright 2022 DigitalOcean
 | 
			
		||||
 | 
			
		||||
This code is licensed under the MIT License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
@@ -37,4 +37,5 @@ export const extensions = {
 | 
			
		||||
        'docx?|dotx?|docm|dotm|' +
 | 
			
		||||
        'xlsx?|xltx?|xlsm|xltm|' +
 | 
			
		||||
        'pptx?|potx?|pptm|potm|ppsx?',
 | 
			
		||||
    html: 'html?',
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user