【问题标题】:JPG image renders as codeJPG 图像呈现为代码
【发布时间】:2017-01-25 22:04:41
【问题描述】:

我的图片缩略图链接到全尺寸图片。现在只有图像显示为某种代码。多年来我一直使用相同的 HTML 编辑器,所有页面都相同。只有这组 5 个页面有缩略图。以这个链接为例:

ÿØÿáExifII*ÿìDucky2ÿáyhttp://ns.adobe.com/xap/1.0/ ÿíHPhotoshop 3.08BIMZ%G8BIM%üá‰È·Éx/4b4XwëÿîAdobedÀÿÛ

我还发现,如果我得到此代码,然后转到历史记录并单击照片的名称,它会按应有的方式弹出。我不知道如何解决这个问题。我已经用两个文件管理器上传了几次照片,也使用了其他照片软件。我的编辑器显示这些页面都很好,但是 IE 显示页面没有样式并且所有浏览器都显示链接图像问题。 我知道这对你们专业人士来说没有多大意义,但这是我的商业网站,一位客户告诉我这个问题。经过 8 小时的尝试解决此问题,我希望您能提供帮助。

【问题讨论】:

  • 你能告诉我们一些显示图像的代码吗?或者,也许您可​​以分享该网站的链接,以便我们查看实际问题。
  • 我一直在尝试解决 CSS 没有出现在同一组页面上的问题。这是一个页面的链接,如果您单击缩略图,您可以看到我有代码而不是大照片。然后单击历史页面并加载照片。 adams-harris.com/dolls/fashion_dolls/13_inches_below/girl_dolls/…
  • 您可能希望将其包含在您的问题中。 edit你的帖子。

标签: html image browser-cache


【解决方案1】:

问题:

当 IMG 更改或被触摸(在您的情况下是通过 adobe)它被上传到服务器并且新的(或修改的)IMG 的名称保持不变时,就会出现此问题。显示的图像不会刷新。即使数据库拥有正确的图像,旧图像仍会显示。我已将其范围缩小到 图像已缓存 在 Web 浏览器中的事实。如果我们点击 Firefox/Explorer/Safari 中的 RELOAD 按钮,一切都会正常刷新并出现正确的图像。

我在您的网站上验证了以下内容:

function is_cached(img_url){
    var imgEle = document.createElement("img");
    imgEle.src = img_url;
    return imgEle.complete || (imgEle.width+imgEle.height) > 0;
}

然后我调用了这个函数,它根据缓存与否返回真或假:

is_cached("photos/back_to_school_pr5_tn.jpg");

结果返回为:

<- true 

记住:上传图片时,其文件名不会保存在数据库中。它被重命名为 Image.jpg(在使用它时简单地说明一下)。用新图像替换现有图像时,名称也不会改变。只是图像文件的内容发生了变化。

解决方案一 - 无需代码:

由于您不从事编码业务(如您声称的那样),您需要做的就是在 IMG 被 adobe 触摸后重命名。 每当您在 adobe 中修改照片或上传新的​​ IMG 时,您都应该给它一个新名称,因为旧版本的 IMG 仍在缓存中。

解决方案二 - 需要编码:

如果使用 adobe 触摸 IMG 是您在上传原始图片后经常要做的事情,那么上述解决方案可能会很麻烦,因此您可能需要研究强制 Web 浏览器不缓存来自这个页面。

注意:此解决方案仅适用于未来。在您的情况下,IMG 已被缓存。 此外,只有当实际的 IMG 在您的 HTML 中 时,这才有效,但在您的站点上,该链接会将您带到实际的 IMG。

解决方案三 - 需要编码:

对上述解决方案的一个重要补充是,您永远不能强制浏览器执行任何操作。你所能做的就是提出友好的建议。实际遵循这些建议取决于浏览器和用户。浏览器可以随意忽略这一点,或者用户可以覆盖默认值。 因此,最好的长期解决方案是将文件名与数据库一起保存。这样,如果图片改变了,IMG标签的src也会改变。 例如:

<img src="picture.jpg?1222259157.415" alt="">

其中“1222259157.415”是服务器上的当前时间。 (注意:我使用 python 的time.time() 来生成)

【讨论】:

  • 感谢您的帮助,但老实说,我已经尝试过了,但我不明白如何在我的页面上进行这项工作。我不是你可以说的网页设计师。我真的很想知道那个代码是什么以及它来自哪里。我网站上的所有照片都是用同一台相机拍摄的,在 Photo Shop 中编辑,网页是在 Webuilder 中编写的。我使用工作现有页面作为这些页面的模板。我并排比较了工作页面和非工作页面。我确信这将是一个不合适的引用。我只是看不出问题。
  • 我添加了一个不需要编码的解决方案。我花了很多时间弄清楚这一点。我希望你是这种情况,只需重命名图片即可。
  • 我已删除所有文件。我已重命名所有索引、页面、照片和缩略图,并将新文件上传到我的网站,但没有任何改变。我仍然不确定从哪里获得 Python。我看到您将代码放在 adams-harris.com/pattern_indexs/paola_index.html
  • 在我进一步研究之前,您能否更改 IMG 链接以在新选项卡上打开?让我们看看这是否会有所帮助。无论如何,这样做是个好主意。您不希望您的用户离开主站点。正确的方法是让一些 JS 通过单击来更改更大的缩略图。
  • 它们都在新窗口中打开,与旧窗口相同。我还尝试使用在另一页上工作的不同图片,我得到了相同的结果,拇指出现了,但照片是乱码。我不知道是图片弄乱了页面还是页面弄乱了图片。与同一“13岁以下”文件夹中另一个娃娃的页面并排,我看不出代码有什么不同。
猜你喜欢
  • 1970-01-01
  • 2014-01-27
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 2023-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多