Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching angular2禁用浏览器缓存_Caching_Angular_Browser Cache - Fatal编程技术网

Caching angular2禁用浏览器缓存

Caching angular2禁用浏览器缓存,caching,angular,browser-cache,Caching,Angular,Browser Cache,我使用angular2进行web开发,使用Jenkins进行持续集成,当我在每次sprint结束时发布代码时,它会部署到CI服务器上 但是,当用户加载UI时,默认情况下,他们不会得到新的UI更改,他们必须清除缓存(我不希望用户仅为该UI清除缓存或禁用缓存) 默认情况下(至少在开发过程中),如何通过编程方式处理浏览器,使其不缓存旧文件并重新加载新更改 注: 我现在确定: import { enableProdMode } from '@angular/core'; enableProdMode()

我使用angular2进行web开发,使用Jenkins进行持续集成,当我在每次sprint结束时发布代码时,它会部署到CI服务器上

但是,当用户加载UI时,默认情况下,他们不会得到新的UI更改,他们必须清除缓存(我不希望用户仅为该UI清除缓存或禁用缓存)

默认情况下(至少在开发过程中),如何通过编程方式处理浏览器,使其不缓存旧文件并重新加载新更改

注: 我现在确定:

import { enableProdMode } from '@angular/core';
enableProdMode();

没有任何文档说明这是原因,删除它也无济于事。

实现“缓存破坏”的两种常用方法是:

  • 在文件请求的末尾使用查询字符串,以提供版本号。例如,当您创建一个javascript文件时,您会将其命名为“my file.js”。然后,在您的HTML中,您可以通过以下方式请求:
  • 然后使用HtmlWebpackPlugin以正确的文件名自动生成index.html(使用inject:true):

    有关网页包文件命名的详细信息:

    有关html网页包插件的更多信息:


    我用一个特殊的.htaccess文件修复了它。只需取消注释“浏览器缓存”部分:

    <script type="text/javascript" src="my-file.js?v=1.0.0"></script> <script type="text/javascript" src="my-file.js?v=1.0.1"></script>
    output: {
            path: 'dist',
            publicPath: '/',
            filename: 'js/[name].[chunkhash].js'
        },
    
     plugins: [
                new HtmlWebpackPlugin({
                    filename: '../index.html',
                    template: './index.html',
                    inject: true
                }), ...