首页 > 解决方案 > Chrome扩展弹出窗口中的相对和绝对路径的奇怪行为

问题描述

我的 chrome 扩展的弹出 html 将 JS 和 CSS 文件的路径视为相对于 html 的父文件夹,但其他类型的文件则视为相对于父文件夹的父文件夹。

这是我的文件夹结构:

 root
  ↳ manifest.json
  ↳  assets
     ↳ popup.html
     ↳  css
     ↳  js
     ↳  images
     ↳  fonts

在 popup.html 中,像这样的标签可以正常工作:

<link href="css/popup.css" rel="stylesheet">
<script type="text/javascript" src="js/popup.js"></script>

但是这个失败了 net::ERR_FILE_NOT_FOUND

<img src="images/example_image.svg">

奇怪的是,如果我将图像路径更改为:

<img src="assets/images/example_image.svg">

^这可行,但我不知道为什么,因为路径应该相对于 CSS 和 JS 文件所在的同一目录。

我已经检查了100次,文件名没有问题,文件夹结构也完全正常。

标签: htmlgoogle-chrome-extension

解决方案


回答我自己的问题:由于某种原因,当我将 files/ 的内容直接放在根文件夹中时,问题得到了解决。我猜 chrome 扩展在嵌套目录中存在某种错误


推荐阅读