Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
配置 Vite 构建输出的公共基础路径_创想鸟

配置 Vite 构建输出的公共基础路径

配置 vite 构建输出的公共基础路径

当 Vite 应用部署到非根目录的子路径时,构建产物(如 JavaScript、CSS 文件)的引用路径可能因默认的根相对路径设置而导致 404 错误。本文将详细介绍如何通过配置 Vite 的 `base` 选项,无论是通过命令行参数还是 `vite.config.js` 文件,来指定正确的公共基础路径,确保应用在任何部署环境下都能正常加载资源。

理解 Vite 构建产物的路径问题

在 Vite 开发模式下(npm run dev),应用通常运行在 http://localhost:3000,资源路径表现正常。然而,当进行生产环境构建(npm run build)并将 dist 目录部署到服务器的某个子文件夹时,例如 http://myapp.com/docs/reconstatus/,问题便会浮现。

Vite 默认生成的资源链接(如 或 )是以根目录 / 开头的绝对路径。这意味着浏览器会尝试从 http://myapp.com/assets/index.js 加载资源,而不是从 http://myapp.com/docs/reconstatus/assets/index.js。由于实际文件位于子目录中,这会导致资源加载失败,产生 404 错误。

为了解决这个问题,我们需要告诉 Vite 在构建时,为所有生成的资源路径添加一个正确的前缀,使其相对于应用的实际部署路径。这个前缀就是 Vite 的 base 配置项。

配置公共基础路径

Vite 提供了两种主要方式来配置 base 选项:通过命令行参数或在 vite.config.js 配置文件中设置。

方法一:通过命令行参数

最直接的方式是在执行构建命令时,将 base 路径作为参数传递给 Vite。这对于快速测试或在 CI/CD 流程中动态指定路径非常有用。

示例代码:

假设您的应用将部署到 http://myapp.com/docs/reconstatus/ 这个路径下,那么在构建时,您可以这样指定 base:

vite build --base=/docs/reconstatus/

或者,如果您在 package.json 中定义了 build 脚本,可以修改为:

{  "scripts": {    "build": "vite build --base=/docs/reconstatus/"  }}

说明:

–base 参数后面跟着的是您应用部署的公共基础路径。路径通常以斜杠 / 开头,表示相对于域名的根目录。建议在路径末尾也加上斜杠,以确保所有子资源路径都能正确拼接。

方法二:在 vite.config.js 中配置

更常见且推荐的做法是在项目的 vite.config.js(或 vite.config.ts)配置文件中定义 base 选项。这种方式将配置固化在项目代码中,易于版本控制和团队协作。

示例代码:

在您的 vite.config.js 文件中添加 base 属性:

// vite.config.jsimport { defineConfig } from 'vite';export default defineConfig({  base: '/docs/reconstatus/', // 设置您的公共基础路径  // 其他 Vite 配置项...});

说明:

defineConfig 辅助函数有助于智能提示和类型检查。base 属性的值应与您应用实际部署的子目录路径一致。

注意事项与最佳实践

路径格式:

base 值通常是一个以 / 开头的绝对路径(相对于域名根目录),并建议以 / 结尾。例如:/my-app/。如果您的应用需要完全相对的路径(例如,部署在任意深度的子目录中,且不确定具体路径),您可以将 base 设置为 ” (空字符串) 或 ./。但请注意,这种方式在某些复杂场景下可能导致问题,并且可能需要额外的处理(如在服务器端配置重写规则)。对于大多数部署到固定子目录的场景,使用绝对路径更可靠。

开发环境与生产环境:

base 配置主要影响 vite build 的输出。在开发模式(npm run dev)下,Vite 通常会忽略 base 配置,因为它会在本地开发服务器上提供服务,路径通常是相对根目录的。如果您需要为开发环境也指定一个 base 路径,可以考虑使用环境变量或条件逻辑。

动态基础路径:

在某些情况下,您可能希望根据不同的部署环境(如测试环境、生产环境)使用不同的 base 路径。您可以通过环境变量来实现这一点:

// vite.config.jsimport { defineConfig, loadEnv } from 'vite';export default defineConfig(({ mode }) => {  // 根据当前模式加载 .env.[mode] 文件中的环境变量  const env = loadEnv(mode, process.cwd(), '');  return {    base: env.VITE_APP_BASE_PATH || '/', // 从环境变量获取,如果未设置则默认为根路径    // 其他 Vite 配置项...  };});

然后,您可以在 .env.production 文件中定义 VITE_APP_BASE_PATH=/docs/reconstatus/。

CDN 部署:

如果您的静态资源部署在 CDN 上,base 也可以指向 CDN 的完整 URL,例如 base: ‘https://cdn.example.com/my-app/’。

总结

正确配置 Vite 的 base 选项是解决应用部署到非根目录子路径时资源加载问题的关键。无论是通过命令行参数进行临时设置,还是在 vite.config.js 中进行持久化配置,理解其作用和正确的路径格式都至关重要。通过遵循本文提供的指南和最佳实践,您可以确保您的 Vite 应用在各种部署环境下都能稳定、高效地运行,避免因路径问题导致的 404 错误。

以上就是配置 Vite 构建输出的公共基础路径的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1534728.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
前端国际化(i18n)的JS实现方案_javascript技巧
上一篇 2025年12月21日 01:51:28
动态响应 DOM 文本变化:MutationObserver 教程
下一篇 2025年12月21日 01:51:41

相关推荐

  • 解决 Conda 环境中 Java 版本冲突的策略

    本文旨在解决 Conda 环境中 Java 版本激活不正确的问题。当用户尝试在 Conda 环境中指定特定 Java 版本(如 OpenJDK 8)时,系统可能仍激活旧的或错误的 Java 版本。教程将详细分析问题根源,并提供一种通过精确指定 Java 包名来确保 Conda 环境正确管理 Java…

    2026年9月23日
    000
  • 淘宝支付方式无法选择怎么办

    支付方式无法选择通常因账户设置、系统版本或商家限制;2. 关闭“优先使用支付宝”开关可恢复其他支付选项;3. 微信支付需绑定“零钱”而非“零钱通”;4. 预售、大额订单、跨境商品等可能仅支持特定支付方式;5. 更新App、重启设备或切换网络可解决加载失败问题。 淘宝支付方式无法选择,通常和账户设置、…

    2026年9月23日
    1000
  • 谷歌为 Gemini CLI 带来扩展功能

    谷歌旗下的 AI 编程助手 Gemini CLI 最近推出了名为“扩展”的全新功能。官方表示,这一更新让用户能够“接入常用工具,并定制属于自己的 AI 命令行体验”。现在,任何开发者都可以发布扩展程序,无需经过谷歌的审核批准即可上线使用。 目前扩展库中已提供超过 50 款扩展,涵盖多种实用场景。例如…

    2026年9月23日
    000
  • 如何恢复未保存的WPS格式文档_WPS未保存文档恢复操作技巧

    首先尝试WPS自动恢复功能,重新打开软件后查看“文档恢复”面板;若无效,可手动查找C:Users当前用户名AppDataLocalKingsoftWPS Officecache目录下的临时文件;若启用云端同步,可通过“备份与恢复”中的历史版本找回;还可使用系统搜索*.asd文件定位自动保存的副本。 …

    2026年9月23日
    100
  • 递归方法中静态变量状态管理与重置策略

    本教程探讨了在递归方法中使用静态(全局)变量时,如何正确管理和重置其状态,以避免多次调用时出现累积错误。核心问题在于静态变量在方法调用之间保留其值,导致后续调用基于旧状态进行计算。解决方案是在递归的基准情况(base case)中,在完成当前调用的计算后,立即将静态变量重置为初始值,从而确保每次独立…

    2026年9月23日
    200
  • 谷歌浏览器如何将网页添加到阅读清单_谷歌浏览器添加网页到阅读清单方法

    谷歌浏览器支持通过地址栏按钮、右键菜单、主菜单和快捷键四种方式将网页添加到阅读清单。1、点击地址栏右侧“添加到阅读清单”图标即可保存;2、在页面空白处右键选择“添加页面到阅读清单”;3、通过三点菜单进入书签子菜单选择“添加到阅读清单”;4、使用Command+Shift+D(Mac)或Ctrl+Sh…

    2026年9月23日
    100
  • 图片库空间不足怎么办_图片库空间不足如何压缩图片详细步骤

    压缩图片可有效节省空间,推荐使用TinyPNG等在线工具批量处理,或用Photoshop、XnConvert进行精准控制,手机用户可通过专用App或快捷指令一键压缩,配合云存储与格式转换更高效。 图片库空间不足时,压缩图片是节省空间最直接有效的方法。不需要删除照片,通过合理压缩,既能保留视觉质量,又…

    2026年9月23日
    100
  • Win10系统如何删除用户配置文件?

    Win10系统如何删除用户配置文件?Win10系统如何删除用户配置文件?Win10系统如何删除用户配置文件?Win10系统如何删除用户配置文件?

    win10电脑在运行时,许多用户会选择创建个人账户,每个账户都会保存一些配置数据,这类数据可能会占用较多的系统资源。当账户数量增多时,可能会导致系统运行变慢,因此可以考虑移除不常使用的用户配置文件。下面将详细介绍如何在win10中删除用户配置文件。 具体步骤如下: 1、双击桌面上的“此电脑”图标。 …

    2026年9月23日 • 用户投稿
    100
  • 苹果手机官网查询门户 苹果查询官网手机入口

    苹果查询官网手机入口是https://www.apple.com.cn,用户可通过该网站查询设备信息、技术支持及配件服务,包括序列号验证、保修状态、维修预约和原厂配件真伪核验等功能。 苹果手机官网查询门户在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来苹果查询官网手机入口,感兴趣的网友一起…

    2026年9月23日
    100
  • Java中用户输入验证:正确使用equals()或转换为整数进行比较

    本教程详细阐述了Java中用户输入字符串(如菜单选项)验证的正确方法。针对==运算符在字符串比较中的局限性,文章介绍了两种解决方案:一是使用String.equals()方法进行内容比较,二是将字符串输入解析为整数后进行数值比较。通过代码示例,帮助开发者避免常见的字符串比较错误,确保程序逻辑的健壮性…

    2026年9月23日
    000
  • 微软免费文件恢复工具介绍

    微软免费文件恢复工具介绍微软免费文件恢复工具介绍微软免费文件恢复工具介绍微软免费文件恢复工具介绍

    现在好了,最近微软在 windows 10 应用商店中上架了一款免费的数据删除恢复工具 windows file recovery,猿妹再也不用担心误删文件了。 Windows File Recovery基于命令行程序设计,大小仅有8.26MB,所有Windows 10用户均可免费下载使用。 无论是…

    2026年9月23日 • 用户投稿
    100
  • 淘宝评价显示延迟怎么办 淘宝评价刷新与修复技巧

    先检查网络与应用状态,确认手机网络稳定并清理淘宝App缓存,避免因本地问题导致评价加载延迟。 淘宝评价显示延迟,通常不会持续太久,但确实会影响购物决策。核心是先判断是局部问题还是普遍现象,然后针对性地处理。 检查网络与应用状态 评价加载不出来,大概率是本地环境的问题。先确认你的手机网络是否稳定,可以…

    2026年9月23日
    000
  • AO3镜像站直接访问链接_AO3镜像站推荐镜像站点

    AO3镜像站直接访问链接包括https://archiveofourown.org/、https://ao3.cubeart.club/、https://l.ao4.live、https://s.ao3l.live,用户可通过浏览器直接输入网址访问,主站无法加载时可切换镜像站点,部分支持手机浏览且无…

    2026年9月23日
    000
  • 如何在Java中安装Eclipse开发环境

    先安装JDK并配置环境变量,再下载安装Eclipse IDE。1. 安装JDK:从Oracle或Eclipse Adoptium下载JDK 17/21,按提示安装,设置JAVA_HOME和PATH,用java -version验证。2. 安装Eclipse:官网下载“Eclipse IDE for …

    2026年9月23日
    000
  • 2025 旗舰手机选购指南:四款机型精准匹配你的需求

    2025 旗舰手机选购指南:四款机型精准匹配你的需求2025 旗舰手机选购指南:四款机型精准匹配你的需求2025 旗舰手机选购指南:四款机型精准匹配你的需求2025 旗舰手机选购指南:四款机型精准匹配你的需求

    在智能手机市场持续繁荣的今天,面对琳琅满目的旗舰%ignore_a_1%,用户往往难以抉择。本文精选四款当前热门的高端手机,帮你高效锁定心仪之选。 1 五款旗舰机型推荐 1. OPPO Find X9 系列 大容量电池、护眼显示屏、双 2 亿像素影像系统——适合对续航敏感、热爱摄影以及重视视觉健康的…

    2026年9月23日 • 用户投稿
    200
  • 番茄小说怎么清除浏览记录_番茄小说浏览记录清除操作教程

    可通过应用内设置一键清空浏览记录,或左滑删除特定书籍历史;也可通过手机设置清除缓存或数据来彻底移除阅读痕迹。 如果您在使用番茄小说时希望保护个人隐私,避免他人查看您的阅读历史,可以通过以下方法清除浏览记录。以下是具体的操作步骤: 一、通过应用内设置清除浏览记录 番茄小说提供了内置的清除功能,用户可以…

    2026年9月23日
    800
  • 为什么Java中构造方法重要 如何正确编写构造方法

    构造方法确保对象正确初始化:通过强制赋初值、校验数据、支持封装和重载提升灵活性;编写时需遵循命名一致、无返回类型、合理用参、注意访问修饰符、避免复杂逻辑及善用this()调用;常见误区包括忽略无参构造、过度初始化和异常处理不当。 构造方法在Java中扮演着初始化对象的关键角色。创建对象时,构造方法会…

    2026年9月23日
    000
  • VS Code团队协作:共享配置与规范

    通过共享VS Code配置实现团队协作标准化,1. 使用.settings.json统一编辑器行为;2. 集成Prettier与ESLint确保代码风格一致;3. 通过extensions.json推荐必备插件;4. 忽略私有配置文件避免冲突,提升开发效率。 在团队开发中,保持代码风格一致和开发环境…

    2026年9月23日
    000
  • UC浏览器如何管理网站权限_UC浏览器网站权限设置与管理指南

    首先明确可通过设置网站权限解决UC浏览器功能受限问题。依次介绍查看修改权限、禁止位置信息、批量重置权限及为可信网站开放摄像头权限的操作步骤,提升安全与使用体验。 如果您在使用UC浏览器访问某些网站时遇到功能受限或提示请求权限的情况,可能是由于网站权限未正确配置。通过合理设置网站权限,您可以控制摄像头…

    2026年9月23日
    100
  • Prestashop分类描述在分页时的显示行为解析与SEO考量

    Prestashop商店中,分类描述通常仅在首个分页页面显示,而在后续分页页面上消失,甚至从第二页返回第一页时也可能不显示。这并非一个技术故障,而是Prestashop的默认行为,且从SEO角度看,只要描述在直接访问的第一页可见,就已满足核心要求,无需在所有分页页面重复显示,以避免潜在的重复内容问题…

    2026年9月23日
    100

发表回复

登录后才能评论
关注微信