服务器上的图像 URL 路径未在普通窗口中呈现,但在隐身模式中是

IT技术 image reactjs google-chrome path
2021-05-02 21:12:35

我有一个不寻常的问题,我无法解决问题并弄清楚是什么导致了这个问题以及如何解决它。

我创建了一个网页,允许将图像上传到服务器!在用户上传图像后,页面的主机会收到一封包含上传图像路径的电子邮件 - 非常简单。

例如,在电子邮件中,会出现这样的网址。

https://www.something.com/uploads/FB_IMG_1525868856883.jpg

我可以在 Mac 上的 Safari 中打开它,在某些情况下我可以在 Chrome Incogntio 中打开它,但它永远不会在 Internet Explorer 或普通 Chrome 窗口中呈现(在隐身模式中)

在此处输入图片说明

在图像中,您看到发生了一些奇怪的事情。Incognito 中呈现的源与普通 chrome 窗口中不同。(顺便说一句,这不是缓存问题)

您还可以看到在正常窗口中解析的实际网站的页面标题,但在隐身模式中看不到。

为什么会这样?是什么原因造成的?那是一些服务器设置吗?我必须设置一些react设置?

4个回答

我发布这个以防其他人也遇到它。我遇到了同样的问题,500 一直发生在我身上,我知道这不是扩展。

什么为我修好了:

  1. 在 Chrome 中打开开发者工具
  2. 导航到应用程序选项卡
  3. 点击“清除存储
  4. 单击清除站点数据

正如Nitish Phanse所说,这是因为页面被缓存了。关闭浏览器缓存将解决它

我遇到了类似的问题,当 CSS 中的任何更改都没有反映在网页中时,因为 chrome 正在使用缓存的版本。但是,这些更改在其他浏览器和设备中可见。关闭 chrome 中的缓存为我解决了这个问题。

我在开发网站时更喜欢使用隐身模式,因为在正常浏览时文件会被缓存,因此不会反映您所做的更改。当您使用隐身模式时,系统会存储新的缓存和 cookie,并在您关闭隐身窗口时处理缓存和 cookie。使用隐身模式进行测试的另一个优点是,它会禁用所有插件,除非您明确启用它们。

您可能想在Quora上查看此问题,以了解有关在开发网站时为何使用隐身模式的更多详细信息。

似乎您使用了相当多的 Chrome 插件。在隐身模式下,这些默认情况下是禁用的。尝试删除/禁用 AdBlock 等阻止脚本并禁止它们运行的​​东西。

为什么它们也可以在其他浏览器中运行是很有意义的。

我强烈建议您在进行 Web 开发时不要使用插件。您可能会看到与不使用它们的用户使用相同代码的不同类型的行为。仅当您特别不想在某些条件下开发时才使用此方法。

正如大多数人所建议的那样,这听起来绝对是一个缓存问题。Incognito 不会加载带有缓存的页面。您可以按 ctrl+f5 页面(重新加载而无需 chache)并查看它是否仍然这样做。如果缓存本身被证明是一个问题,您可以添加一个幽灵/幻影字符串(我不知道这是否是实际正确的术语)。基本上你添加,

<?php echo '?'.date('Y-m-d H:i:s'); ?>

最后 CSS 或 JavaScript 导入(任何可能导致问题的原因)。IE,

<script src="/js/regexps.js<?php echo '?'.date('Y-m-d H:i:s'); ?>" type="text/javascript"></script>

这样做的目的是防止人们缓存您的文件,因为该文件的名称将在一秒钟内更改。通过这种方式,您可以确保如果对经常缓存的文件进行更改,则每个人都会在更新 CSS/JavaScript 或其他任何内容时获得未缓存的更改。这对于您进行 JavaScript 检查的文件非常有用,例如,如果您对某些正则表达式等进行更改。