vite 基本路径不尊重 dist 目录
vite base path doesnt respect dist-directory
我将 vite 纯粹用作开发服务器,后端服务器为我提供文件服务,并且与 vite 本身没有任何联系。我的 vite 应用程序位于嵌套路径下。这就是为什么我将配置中指定的 base-url 设置为“/my/path/”。这很好用,一切都正确。
一旦我 运行 构建,它会创建一个带有清单文件的 dist 文件夹。我的索引 HTML 由后端服务器提供,要么包含 dev 中的 vite devserver,要么加载 maninifest.json { "src/main.ts": { "file": "assets/main.b3ed3483.js", ...}}
指定的 main.ts。因此我的索引 HTML 看起来有点像这样:
<?php if($dev): ?>
<script type="module" src="http://localhost:3000/@vite/client"></script>
<script type="module" src="http://localhost:3000/src/main.ts"></script>
<?php else: ?>
<?php $entry = parseJson('dist/manifest.json'); /* pseudocode */ ?>
<link rel="stylesheet" href="/my/path/dist/<?= $entry.css[0] ?>" />
<script type="module" src="/my/path/dist/<?= $entry.file ?>"></script>
<?php endif ?>
现在,我遇到了一个问题,每当导入一个模块时,它都会尝试从 /my/path/assets
而不是 my/path/dist/assets
加载它。我尝试将基本路径更改为 /my/path/dist/
但现在显然路径在 dev 中未正确解析。我需要做什么才能使这项工作正常进行?
我不确定我是否完全理解您脚本标签中的 src 路径,但我认为这应该可行,尽管您可能需要进行一些更改以使您的 src 路径匹配。
- 选项一:如果您使用 linux,我会创建一个从
/my/path/
到 /dist/assets/
的符号 link,例如ln -s -r ./dist/assets/ assets
(-s 表示符号 link,-r 表示相对 links)。这将为同一目录提供两条路径,一条来自 /my/path/assets,一条来自 /my/path/dist/assets/.
- 选项二:使用相对基本路径,即在您的 vite 配置中将
base
设置为 ''
。注意:在 vite 2.x 中存在一个问题,如果您有多个入口点,资产路径将不正确。有个fix merged for vite 3.0.
我将 vite 纯粹用作开发服务器,后端服务器为我提供文件服务,并且与 vite 本身没有任何联系。我的 vite 应用程序位于嵌套路径下。这就是为什么我将配置中指定的 base-url 设置为“/my/path/”。这很好用,一切都正确。
一旦我 运行 构建,它会创建一个带有清单文件的 dist 文件夹。我的索引 HTML 由后端服务器提供,要么包含 dev 中的 vite devserver,要么加载 maninifest.json { "src/main.ts": { "file": "assets/main.b3ed3483.js", ...}}
指定的 main.ts。因此我的索引 HTML 看起来有点像这样:
<?php if($dev): ?>
<script type="module" src="http://localhost:3000/@vite/client"></script>
<script type="module" src="http://localhost:3000/src/main.ts"></script>
<?php else: ?>
<?php $entry = parseJson('dist/manifest.json'); /* pseudocode */ ?>
<link rel="stylesheet" href="/my/path/dist/<?= $entry.css[0] ?>" />
<script type="module" src="/my/path/dist/<?= $entry.file ?>"></script>
<?php endif ?>
现在,我遇到了一个问题,每当导入一个模块时,它都会尝试从 /my/path/assets
而不是 my/path/dist/assets
加载它。我尝试将基本路径更改为 /my/path/dist/
但现在显然路径在 dev 中未正确解析。我需要做什么才能使这项工作正常进行?
我不确定我是否完全理解您脚本标签中的 src 路径,但我认为这应该可行,尽管您可能需要进行一些更改以使您的 src 路径匹配。
- 选项一:如果您使用 linux,我会创建一个从
/my/path/
到/dist/assets/
的符号 link,例如ln -s -r ./dist/assets/ assets
(-s 表示符号 link,-r 表示相对 links)。这将为同一目录提供两条路径,一条来自 /my/path/assets,一条来自 /my/path/dist/assets/. - 选项二:使用相对基本路径,即在您的 vite 配置中将
base
设置为''
。注意:在 vite 2.x 中存在一个问题,如果您有多个入口点,资产路径将不正确。有个fix merged for vite 3.0.