【问题标题】:Image from public directory not loading Express NodeJs来自公共目录的图像未加载 Express NodeJs
【发布时间】:2021-01-17 14:17:21
【问题描述】:

您好,我正在编写一个快速应用程序,我有一个公共目录,其中有一个图像。在 app.js 文件中,我使用“app.use(express.static(__dirname + '/public/'));”行所以 express 知道要使用这个文件夹。

图像在某些页面上加载,而在其他页面上不加载,它加载到具有 URL 的页面上,其中在基本 URL 之后只有一个单词,例如 www.amazonaws.com/blogswww.amazonaws.com/login 但图像不会加载带有诸如 www.amazonaws.com/blogs/bestwww.amazonaws.com/blogs/102 等 URL 的页面。

我正在使用 ejs 文件,它们都在同一个文件夹中,因此例如用于 www.amazonaws.com/blogs 的“博客”ejs 文件工作正常,但对于 www.amazonaws.com/blogs/besteverthying 的“最佳”ejs 文件工作正常,除了这个图像不加载。不知道这是为什么?感谢您的帮助。

【问题讨论】:

  • 您能展示一些代码吗?

标签: javascript node.js express


【解决方案1】:

网页中图片的 URL 需要以 / 开头,因此它不是“路径相对”的 URL。从您的症状来看,您在页面中的图像 URL 听起来只是一个简单的名称,例如:

<img src="image.jpg">

当您这样做时,浏览器将获取您网页的路径并将其与文件名结合起来,浏览器请求的 URL 将根据网页是否具有路径而有所不同。相反,如果您这样做:

<img src="/image.jpg">

然后,浏览器将只使用网页的域,而不是路径,无论此链接在哪个网页路径,您都会得到一致的 URL,因为这是绝对路径,而不是相对路径。

【讨论】:

  • 这是问题,添加正斜杠解决了它,非常感谢
猜你喜欢
  • 1970-01-01
  • 2017-09-26
  • 2019-03-28
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 2021-07-11
  • 2021-07-23
  • 1970-01-01
相关资源
最近更新 更多