代码之家  ›  专栏  ›  技术社区  ›  Rob Gray

Visual Studio开发服务器未更新css和javascript?

  •  22
  • Rob Gray  · 技术社区  · 15 年前

    使用Visual Studio 2008(9.0.30729.1)

    停止dev服务器没有任何作用。 唯一有效的方法是发布到IIS或重新启动我的计算机。两者都不可取。 如果每次停止调试时都需要终止某个进程,以确保不使用以前的副本,我甚至会感到满意。

    有什么解决办法吗?

    3 回复  |  直到 15 年前
        1
  •  33
  •   Community Dan Abramov    7 年前

    服务器可能正在向浏览器发送标头,导致其继续使用缓存副本。测试这一点的简单方法是 empty your browser cache .

    如果这能解决问题,你需要研究 HTTP headers 您可以从服务器上获取。这个 developer tools (又称。 F12 tools )在您的浏览器中,所选内容将公开服务器返回的标题。然后决定是否继续使用这些缓存设置( good for speed )或者改变它们( good for development ).

        2
  •  9
  •   adeel41    12 年前

    例如

    <script type="javascript" src="@Url.Content("~/scripts/myScripts.js?" + DateTime.Now.ToString("ddMMHHmmss")"></script>
    

    所以浏览器总是假定它是一个新文件,而不会缓存。

    在live server上部署时,请确保删除此项。

        3
  •  1
  •   Shadow Walker    4 年前

    如果您总是希望获得最新版本的js和CSS文件,可以修改StaticFile中间件,如

    app.UseStaticFiles(new StaticFileOptions()
    {
        OnPrepareResponse = context =>
        {
            context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store");
            context.Context.Response.Headers.Add("Expires", "-1");
        }
    });
    

    或者你可以加上 asp-append-version="true" 到您的文件引用,如:

    <link rel="stylesheet" href="~/css/site.css" asp-append-version="true"/>
    
        4
  •  0
  •   Wairimu Murigi    9 年前

    <link href"~/Content/Style.css" rel="stylesheet"/>

    连同包裹一起。这对我有用