You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express搭配Pug模板引擎项目登录注册页静态图片无法显示问题求助

问题根因
  • 静态资源使用相对路径引用时,浏览器会根据当前页面的访问路由路径拼接资源地址,不同层级的路由会导致拼接后的资源地址错误
  • 登录注册页的资源路径同时存在两个错误:一是用了当前路径相对符./,二是缺失了images/路径层级,和public目录下的文件结构不匹配
解决方案

方案1:统一静态资源引用为根路径绝对路径(推荐)

将所有页面的图片引用路径改为以/开头的绝对路径,不管当前页面路由是什么,浏览器都会直接从站点根路径请求资源,不会出现路径拼接错误。

修改后首页pug代码示例

.img#menu-icon
  img(src="/images/menu-icon.svg", alt="Menu icon")
#navbarSupportedContent.collapse.navbar-collapse
  .logo
    a(href="/")
      img(src="/images/logo.png", alt="entre logo")
  ul.navUl.navbar-nav.mb-2.mb-lg-0
    li#nav-item-1.navList.nav-item
      a.navLink.nav-link.text-dark(href="#") Home
    li#nav-item-1.navList.nav-item
      a.navLink.nav-link.text-dark(href="#") Order

修改后登录注册页pug代码示例

.img#menu-icon
    img(src="/images/menu-icon.svg", alt="Menu icon")
  #navbarSupportedContent.collapse.navbar-collapse
    .logo
      a(href="/")
        img(src="/images/logo.png" alt="entre logo")
    ul.navUl.navbar-nav.mb-2.mb-lg-0
      li#nav-item-1.navList.nav-item
        a.navLink.nav-link.text-dark(href="#") Home
      li#nav-item-1.navList.nav-item
        a.navLink.nav-link.text-dark(href="#") Order

可选优化:调整路由命名更符合规范

可以去掉登录注册页路由的.pug后缀,访问路径更简洁,也能避免路径层级带来的潜在问题:

// 将原有的登录路由代码替换为以下内容
app.get('/login', (req, res)=>{
    res.status(200).render('loginandsingup.pug');
})

修改后可直接通过/login路径访问登录注册页。

内容的提问来源于stack exchange,提问作者Shyam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:06:06