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

Vanilla HTML/CSS/JS网站部署后资源加载失败求助

问题:静态资源在Vercel/Netlify部署后无法加载

我用原生HTML、CSS、JS开发了一个多页面网站,在VS Code的Live Server上运行完全正常,但部署到Vercel和Netlify平台后,JavaScript、CSS及静态资源均无法加载。已在部署配置中指定主HTML文件路径为pages/main/html,但问题仍未解决。

主HTML代码如下:

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="../../../css/reset.css" />
    <link rel="stylesheet" href="../../../css/main.css" />
    <link rel="stylesheet" href="../css/style.css" />
    <link rel="stylesheet" href="../css/media-mobile.css" />
    <link
      href="https://db.onlinewebfonts.com/c/eceba41a00b4b94ea2965371c8dda96c?family=Bernard+MT+Condensed+V2"
      rel="stylesheet"
    />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;0,900;1,300;1,400;1,700;1,900&amp;family=Nunito:ital,wght@0,200..1000;1,200..1000&amp;display=swap"
      rel="stylesheet"
    />
    <link rel="icon" type="image/png" href="../../../assets/icon.png" />
    <title>Hotel AuPet</title>
    <style></style>
  </head>
  <body>
    <div class="page">
      <header class="header">
        <img
          class="fullLogo"
          src="../assets/header/Hotel-AuPet.png"
          alt="logo"
        />
        <img
          class="logoName"
          src="../assets/header/Hotel-AuPet NOME.png"
          alt="logo-name"
        />
        <img
          class="logoImage"
          src="../assets/header/Hotel-AuPet SEM NOME.png"
          alt="logo-img"
        />
        <div class="info">
          <h2>Viaje com tranquilidade, com o seu cão hospedado conosco</h2>
        </div>
      </header>

      <div class="contacts">
        <div class="contact" onclick="openWindow('insta')">
          <img src="../assets/icons/instagram-icon.png" alt="instagram" />
          <p>hotel_aupet</p>
        </div>
        <div class="contact" onclick="openWindow('zap')">
          <img src="../assets/icons/whatsapp-icon.png" alt="whatsapp" />
          <p>+55 77 9180-6965</p>
        </div>

        <h3>45.700-000 Itapetinga, Bahia, Brasil</h3>
        <div class="pseudoHr"></div>
      </div>

      <div class="content">
        <div class="carouselContainer">
          <ul class="carousel"></ul>
        </div>

        <ul class="buttons">
          <li onclick="navigateTo('about')">
            <img
              src="../assets/buttons/button-sobre-nos.png"
              alt="button-sobre-nos"
            />
          </li>
          <li onclick="navigateTo('services')">
            <img
              src="../assets/buttons/button-serviços.png"
              alt="button-serviços"
            />
          </li>
          <li onclick="navigateTo('instructions')">
            <img
              src="../assets/buttons/button-instrucoes.png"
              alt="button-instrucoes"
            />
          </li>
          <li onclick="navigateTo('guests')">
            <img
              src="../assets/buttons/button-hospedes.png"
              alt="button-hospedes"
            />
          </li>
        </ul>
      </div>

      <div class="contacts end">
        <div class="contact" onclick="openWindow('git')">
          <img src="../assets/icons/github-mark.png" alt="instagram" />
          <p>Site desenvolvido por Gabriel G S Rios</p>
        </div>
      </div>
    </div>

    <script src="../script/script.js"></script>
  </body>
</html>

解决方法

1. 替换相对路径为根路径

本地Live Server的路径解析逻辑和部署平台的服务器不同,../这类相对路径在部署后会指向错误的位置。把所有资源路径改成以/开头的根路径,直接从仓库根目录定位资源:

  • 比如../../../css/reset.css改为/css/reset.css
  • ../assets/header/Hotel-AuPet.png改为/pages/main/assets/header/Hotel-AuPet.png(根据你的实际项目目录结构调整,确保路径准确指向资源文件)

2. 修正部署配置

  • 不要把主HTML路径设为pages/main/html,应该指向具体的HTML文件,比如pages/main/index.html
  • 在Vercel/Netlify的部署设置中,确认发布目录为仓库根目录(如果是多页应用,确保所有HTML文件所在目录被平台正确识别)

3. 验证目录结构

确保你的项目仓库根目录下包含css、assets、pages等文件夹,部署平台会以仓库根目录作为网站的根目录,所有根路径都会从这里开始解析。

修正后的HTML代码示例

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="/css/reset.css" />
    <link rel="stylesheet" href="/css/main.css" />
    <link rel="stylesheet" href="/pages/main/css/style.css" />
    <link rel="stylesheet" href="/pages/main/css/media-mobile.css" />
    <link
      href="https://db.onlinewebfonts.com/c/eceba41a00b4b94ea2965371c8dda96c?family=Bernard+MT+Condensed+V2"
      rel="stylesheet"
    />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;0,900;1,300;1,400;1,700;1,900&family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap"
      rel="stylesheet"
    />
    <link rel="icon" type="image/png" href="/assets/icon.png" />
    <title>Hotel AuPet</title>
    <style></style>
  </head>
  <body>
    <div class="page">
      <header class="header">
        <img
          class="fullLogo"
          src="/pages/main/assets/header/Hotel-AuPet.png"
          alt="logo"
        />
        <img
          class="logoName"
          src="/pages/main/assets/header/Hotel-AuPet NOME.png"
          alt="logo-name"
        />
        <img
          class="logoImage"
          src="/pages/main/assets/header/Hotel-AuPet SEM NOME.png"
          alt="logo-img"
        />
        <div class="info">
          <h2>Viaje com tranquilidade, com o seu cão hospedado conosco</h2>
        </div>
      </header>

      <div class="contacts">
        <div class="contact" onclick="openWindow('insta')">
          <img src="/pages/main/assets/icons/instagram-icon.png" alt="instagram" />
          <p>hotel_aupet</p>
        </div>
        <div class="contact" onclick="openWindow('zap')">
          <img src="/pages/main/assets/icons/whatsapp-icon.png" alt="whatsapp" />
          <p>+55 77 9180-6965</p>
        </div>

        <h3>45.700-000 Itapetinga, Bahia, Brasil</h3>
        <div class="pseudoHr"></div>
      </div>

      <div class="content">
        <div class="carouselContainer">
          <ul class="carousel"></ul>
        </div>

        <ul class="buttons">
          <li onclick="navigateTo('about')">
            <img
              src="/pages/main/assets/buttons/button-sobre-nos.png"
              alt="button-sobre-nos"
            />
          </li>
          <li onclick="navigateTo('services')">
            <img
              src="/pages/main/assets/buttons/button-serviços.png"
              alt="button-serviços"
            />
          </li>
          <li onclick="navigateTo('instructions')">
            <img
              src="/pages/main/assets/buttons/button-instrucoes.png"
              alt="button-instrucoes"
            />
          </li>
          <li onclick="navigateTo('guests')">
            <img
              src="/pages/main/assets/buttons/button-hospedes.png"
              alt="button-hospedes"
            />
          </li>
        </ul>
      </div>

      <div class="contacts end">
        <div class="contact" onclick="openWindow('git')">
          <img src="/pages/main/assets/icons/github-mark.png" alt="instagram" />
          <p>Site desenvolvido por Gabriel G S Rios</p>
        </div>
      </div>
    </div>

    <script src="/pages/main/script/script.js"></script>
  </body>
</html>

内容的提问来源于stack exchange,提问作者Gabriel Goes Santos Rios

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:14:51