0

我创建了一个 aspx 页面并在 Firefox 中查看它,它运行正常,运行代码。但是当我对页面进行更改(包括删除所有内容并提供空白页面)时,Firefox 继续显示原始编译的 aspx 页面!我怎样才能让它看到新页面?

我什至添加了以下代码,但它仍然加载原始页面:

<script runat="server">
Sub Page_Load
    Random rd = new Random();
    Response.AddHeader("ETag", rd.Next(1111111, 9999999).ToString());
    Response.AddHeader("Pragma", "no-cache");
    Response.CacheControl = "no-cache";
    Response.Cache.SetNoStore();
    Response.Expires = -1;
End Sub
</script>

我什至清除了 Firefox 的缓存,但它仍然加载原始版本!

编辑:看来问题可能出在 ASP.Net 方面。它在 Chrome 中也没有改变。那么,如何强制更改 aspx 文件以强制重新编译?

4

3 回答 3

0

由于看起来这个问题与 firefox 无关,而是 ASP.Net Web 服务器中的问题(因为它也发生在 Chrome 中),所以我问了一个不同的问题并将关闭这个问题。

于 2012-12-18T05:18:19.560 回答
0
  • 重新加载和覆盖缓存的另一种方法CTRL + F5
  • 它还可能取决于您如何开发 ASP.Net 应用程序/站点
    • 在再次查看之前进行更改后重新编译?

如果您正在构建一个web application,您必须重建(在 Visual Studio 中)您的应用程序以反映您对服务器端代码所做的任何更改 - 这不是“ASP.Net 问题”,而是常态。您可以在不重新构建的情况下更改 HTML(客户端),但任何服务器代码更改都需要重新构建(重新编译 dll)。

但是,您上面的示例代码看起来像in-line代码 - 是您的所有代码in-line- 因为您没有code behind文件(即 foo.aspx.vb 或 foo.aspx.cs)?

以上所有内容均基于本地开发- 显然,如果您正在查看您的“生产”/实时站点,那么不用说您必须“推送”/“发布”/上传/更新,无论您对其进行了任何本地更改.

于 2012-12-18T04:05:08.687 回答
0

我对以下代码很幸运:

// Stop Caching in IE
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);

// Stop Caching in Firefox
Response.Cache.SetNoStore();

此外,您的浏览器可能在您添加缓存预防代码之前已经缓存了它。如果是这样,请尝试在 Firefox 中按 CTRL-SHIFT-R 以强制重新加载而不访问缓存,并查看 Firefox 存储页面的缓存副本是否仍然存在问题。

于 2012-12-18T01:35:40.737 回答