EJS模板导航栏navbar-brand的ico图片404不显示如何解决
问题核心原因
你遇到的404问题本质是服务端渲染场景下,静态资源访问路径和本地文件相对路径的逻辑差异,和EJS模板本身的语法无关,是Node.js服务的静态资源托管规则导致的:
- 你最初写的
../../static/images/icona.ico是navbar.ejs文件在本地项目目录中相对于图片的路径,仅适用于本地文件系统的路径解析。但EJS是服务端渲染模板,渲染完成的HTML会作为HTTP响应返回给浏览器,浏览器请求图片时是基于你的站点根URL来解析路径,不会识别EJS源文件的存放位置。 - 从你给出的项目目录判断,你的Node.js服务(一般为Express或同类框架)已经把
static目录配置为了静态资源托管根目录,对应的配置代码通常为app.use(express.static('static'))。配置完成后,static目录下的所有内容会直接映射到站点的根路径下,因此static/images/icona.ico对应的外网访问路径就是/images/icona.ico,和你最终修改后的路径一致。
补充说明
你提到的「VSCode中无法通过CTRL+点击跳转图片」是正常现象:/images/icona.ico是基于站点根的URL路径,不是本地文件系统的路径,VSCode的文件跳转仅能识别本地文件路径规则,不会读取你服务的静态资源托管配置,因此无法跳转,不影响线上运行。
内容的提问来源于stack exchange,提问作者init
相关产品推荐
相关产品推荐

