Skip to content

Commit 5ddd9d2

Browse files
committed
fix(compiler-sfc): asset url transform should ignore direct hash urls
1 parent 8b9ee57 commit 5ddd9d2

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts

+14
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,18 @@ describe('compiler sfc: transform asset url', () => {
7979
)
8080
expect(code).toMatchSnapshot()
8181
})
82+
83+
// vitejs/vite#298
84+
test('should not transform hash fragments', () => {
85+
const { code } = compileWithAssetUrls(
86+
`<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
87+
<defs>
88+
<circle id="myCircle" cx="0" cy="0" r="5" />
89+
</defs>
90+
<use x="5" y="5" xlink:href="#myCircle" />
91+
</svg>`
92+
)
93+
// should not remove it
94+
expect(code).toMatch(`"xlink:href": "#myCircle"`)
95+
})
8296
})

packages/compiler-sfc/src/templateTransformAssetUrl.ts

+1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ export const transformAssetUrl: NodeTransform = (
9999
!assetAttrs.includes(attr.name) ||
100100
!attr.value ||
101101
isExternalUrl(attr.value.content) ||
102+
attr.value.content[0] === '#' ||
102103
(!options.includeAbsolute && !isRelativeUrl(attr.value.content))
103104
) {
104105
return

0 commit comments

Comments
 (0)