【问题标题】:HTML relative path to image. Cannot find 404 on Github Page [duplicate]图像的 HTML 相对路径。在 Github 页面上找不到 404 [重复]
【发布时间】:2017-02-02 14:37:54
【问题描述】:

我有以下文件结构

demo  
|_ assets  
.....|_ image.png  
.....|_ anotherimage.png  
|_ dist  
.....|_ my-component.html  
.....|_ my-component.js  
|_ index.html  

my-component.html 具有<img src="../assets/image.png"/>
my-component.js 在运行时生成<img src="../assets/anotherimage.png"> HTML 标记。

这在我的本地 http 服务器上运行良好。
当我将东西推送到 Github Page 时,就会出现问题。

  • my-component.html 文件中引用的图像正确显示。它将图像 url 识别为http://myorg.github.io/myrepo/demo/assets/image.png
  • my-component.js 文件中提到的图像找不到 404。它将图像 url 识别为http://myorg.github.io/myrepo/assets/anotherimage.png

注意浏览器识别的两种情况的 url。第二种情况没有demo/

就像my-component.js 被放置在demo 目录而不是dist。但这怎么可能发生。这里有什么问题?以及如何解决?

已编辑
my-component.htmlmy-component.js 实际上是将 Polymer 组件拆分为 2 个文件,一个用于模板,另一个用于逻辑代码。 然后index.html 通过代码顶部的<link rel="import" href="dist/my-component.html"> 导入该组件。 Polymer 或我之前测试过的任何东西都没有问题,我认为问题与 Polymer 无关。

【问题讨论】:

    标签: javascript html image url github-pages


    【解决方案1】:

    在 WebComponents 中,路径是相对于 HTML 页面的,在 Polymer 中,它们是相对于组件本身的。见https://stackoverflow.com/a/33603356/227299

    possible solution 是使用 this.resolveUrl('../assets/image.png') 创建你的路径,相对于 JS 文件。

    【讨论】:

    • Javascript 文件将仅包含在该 HTML 文件中且仅包含一个位置。我想使用您建议的选项 1,但因为它适用于其他测试而不是在 github 页面上。您的意思是该修复仅适用于 github 页面吗?
    • 这很奇怪,因为两个文件都在同一个目录中。嘿,胡安,我已经用更多信息编辑了这个问题。我不确定它能否提供更多提示。请查看我编辑的问题。
    • 非常感谢胡安。这很有帮助!请继续关闭我的问题,因为答案已经存在。
    猜你喜欢
    • 2013-04-25
    • 1970-01-01
    • 2017-06-14
    • 2022-09-23
    • 2019-05-11
    • 2019-09-29
    • 2016-02-10
    • 2014-11-30
    • 1970-01-01
    相关资源
    最近更新 更多