]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(compiler-sfc): should not transform external asset url with
authorEvan You <yyx990803@gmail.com>
Wed, 6 May 2020 13:40:55 +0000 (09:40 -0400)
committerEvan You <yyx990803@gmail.com>
Wed, 6 May 2020 13:41:31 +0000 (09:41 -0400)
includeAbsolute: true

packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap
packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts
packages/compiler-sfc/src/templateTransformAssetUrl.ts

index 3373e885ff81f0a3aa74d02ec4a7038ff8cac9f6..998eeae568d39afc326912b40862e6d5f820b4f1 100644 (file)
@@ -59,7 +59,8 @@ import _imports_1 from '/bar.png'
 export function render(_ctx, _cache) {
   return (_openBlock(), _createBlock(_Fragment, null, [
     _createVNode(\\"img\\", { src: _imports_0 }),
-    _createVNode(\\"img\\", { src: _imports_1 })
+    _createVNode(\\"img\\", { src: _imports_1 }),
+    _createVNode(\\"img\\", { src: \\"https://foo.bar/baz.png\\" })
   ], 64 /* STABLE_FRAGMENT */))
 }"
 `;
index 1102690fdcff0290c1aa2d569629e9675b960475..91ea19dcaeca4e47914bcf0dfd471d87b3edb1eb 100644 (file)
@@ -70,7 +70,9 @@ describe('compiler sfc: transform asset url', () => {
 
   test('with includeAbsolute: true', () => {
     const { code } = compileWithAssetUrls(
-      `<img src="./bar.png"></img>` + `<img src="/bar.png"></img>`,
+      `<img src="./bar.png"/>` +
+        `<img src="/bar.png"/>` +
+        `<img src="https://foo.bar/baz.png"/>`,
       {
         includeAbsolute: true
       }
index 0b7c9175f4d7be70ebd03982ec6f0e8200117b2c..3ca2984e7eadeced492f3a30baacc5f79056ba7a 100644 (file)
@@ -7,7 +7,7 @@ import {
   SourceLocation,
   TransformContext
 } from '@vue/compiler-core'
-import { isRelativeUrl, parseUrl } from './templateUtils'
+import { isRelativeUrl, parseUrl, isExternalUrl } from './templateUtils'
 import { isArray } from '@vue/shared'
 
 export interface AssetURLTagConfig {
@@ -98,6 +98,7 @@ export const transformAssetUrl: NodeTransform = (
         attr.type !== NodeTypes.ATTRIBUTE ||
         !assetAttrs.includes(attr.name) ||
         !attr.value ||
+        isExternalUrl(attr.value.content) ||
         (!options.includeAbsolute && !isRelativeUrl(attr.value.content))
       ) {
         return