【问题标题】:ASPNET CORE 3 browsers never reload with F5ASPNET CORE 3 浏览器永远不会用 F5 重新加载
【发布时间】:2020-02-21 14:03:21
【问题描述】:

VS2019、ASPNET CORE 3.0、WIN10、EDGE/IE、Razor PageModel

页面加载后(在调试模式下),我对 cshtml 文件进行了一些更改,按 F5。页面刷新,但从不获取最新版本。模型页面中的 OnGet() 函数确实被调用了。

我想当按下 F5 时,浏览器总是会获取最新的 HTML 而不管缓存设置?

这让我的调试变得异常困难。我可以知道如何禁用缓存,至少在调试模式下?

【问题讨论】:

  • 你听说过缓存吗?不一定,您可能需要重新编译。尝试设置浏览器链接
  • 您可以使用 Ctrl + F5(硬重新加载)。
  • 一些浏览器过度激进的缓存(尤其是 Firefox)和缺乏巧妙的失效是一个痛苦

标签: asp.net-core razor-pages


【解决方案1】:

在 Visual Studio 2022 中,带有 Razor 页面的 ASP.NET 网站,为了在刷新浏览器时直接查看对纯 HTML 的更改,而无需重新构建您的项目,您需要:

  1. 安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。
  2. 在 Program.cs 中,将“builder.Services.AddRazorPages();”更改为“builder.Services.AddRazorPages().AddRazorRuntimeCompilation();”李>

这在很多层面上看起来都非常荒谬 ;-) 但它确实有效。

【讨论】:

    【解决方案2】:

    要在源代码更改时在浏览器上重新加载 cshtml 文件,请检查您的 web.config,并在 <system.web> 中确保您没有 fcnMode="Disabled"fcnMode="NotSet"

    使用

    <httpRuntime targetFramework="4.5.2" fcnMode="Default" />
    

    <httpRuntime targetFramework="4.5.2" fcnMode="Single" />
    

    (确保您自己更改了 targetFramework 版本)

    Source here.

    如果您想完全禁用 Google Chrome 缓存(以重新加载 .js 文件或 .css 文件),该设置将隐藏在开发者选项中。以下是在 Windows、OS X 和 Linux 版本中访问它的方法。

    1. 选择右上角的“菜单”按钮,然后选择“更多 工具”>“开发者工具”。您也可以通过以下方式进入此屏幕 对于 Windows 和 Linux,按 Ctrl + Shift + I 或 Command + Option + 我适用于 Mac OS X。
    2. 出现开发工具窗口。选择“网络”,
    3. 选中“禁用缓存”框。

    如果这不会重新加载非cshtml文件,您也可以手动打开chrome dev工具,右键单击chrome刷新页面图标,然后选择清除缓存并重新加载...

    【讨论】:

    • 这个问题是关于 ASPNET CORE 3 的。在标准的、模板生成的 Web 应用项目中,默认情况下没有 web.config
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 2016-07-06
    • 2013-07-28
    • 1970-01-01
    • 2015-11-08
    相关资源
    最近更新 更多