Skip to content

Commit 515b171

Browse files
committed
fix: respect vite base config for absolute URLs during dev
1 parent 44fd6bc commit 515b171

File tree

9 files changed

+67
-0
lines changed

9 files changed

+67
-0
lines changed

packages/plugin-vue/src/template.ts

+1
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export function resolveTemplateCompilerOptions(
125125
(options.devServer.config.server?.origin ?? '') +
126126
devBase +
127127
slash(path.relative(options.root, path.dirname(filename))),
128+
includeAbsolute: !!devBase,
128129
}
129130
}
130131
} else if (transformAssetUrls !== false) {

playground/vue-asset-base/Main.vue

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<template>
2+
<img alt="Vue logo" src="./assets/asset.png" />
3+
<img alt="Vue logo" src="/assets/asset.png" />
4+
</template>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { expect, test } from 'vitest'
2+
import { isBuild, page } from '~utils'
3+
4+
test('should render', async () => {
5+
const expected = isBuild
6+
? /^\/foo\/assets\/asset-[-\w]+\.png/
7+
: /^\/foo\/assets\/asset.png/
8+
9+
expect(await page.getAttribute('img', 'src')).toMatch(expected)
10+
expect(await page.getAttribute('img:nth-child(2)', 'src')).toMatch(expected)
11+
})
12.5 KB
Loading

playground/vue-asset-base/env.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
declare module '*.png'

playground/vue-asset-base/index.html

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<div id="app"></div>
2+
<script type="module">
3+
import { createApp, defineCustomElement } from 'vue'
4+
import Main from './Main.vue'
5+
6+
createApp(Main).mount('#app')
7+
</script>
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "@vitejs/test-vue-server-origin",
3+
"private": true,
4+
"version": "0.0.0",
5+
"scripts": {
6+
"dev": "vite",
7+
"build": "vite build",
8+
"debug": "node --inspect-brk vite",
9+
"preview": "vite preview"
10+
},
11+
"dependencies": {
12+
"vue": "^3.3.8"
13+
},
14+
"devDependencies": {
15+
"@vitejs/plugin-vue": "workspace:*"
16+
}
17+
}
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { defineConfig } from 'vite'
2+
import vuePlugin from '@vitejs/plugin-vue'
3+
4+
export default defineConfig({
5+
base: '/foo/',
6+
resolve: {
7+
alias: {
8+
'@': __dirname,
9+
},
10+
},
11+
plugins: [vuePlugin()],
12+
build: {
13+
// to make tests faster
14+
minify: false,
15+
},
16+
})

pnpm-lock.yaml

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)