From: Evan You Date: Wed, 6 May 2020 13:40:55 +0000 (-0400) Subject: fix(compiler-sfc): should not transform external asset url with X-Git-Tag: v3.0.0-beta.10~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d66211849ca174c4458b59d3df5569730ee224f6;p=thirdparty%2Fvuejs%2Fcore.git fix(compiler-sfc): should not transform external asset url with includeAbsolute: true --- diff --git a/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap index 3373e885ff..998eeae568 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/templateTransformAssetUrl.spec.ts.snap @@ -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 */)) }" `; diff --git a/packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts b/packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts index 1102690fdc..91ea19dcae 100644 --- a/packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts +++ b/packages/compiler-sfc/__tests__/templateTransformAssetUrl.spec.ts @@ -70,7 +70,9 @@ describe('compiler sfc: transform asset url', () => { test('with includeAbsolute: true', () => { const { code } = compileWithAssetUrls( - `` + ``, + `` + + `` + + ``, { includeAbsolute: true } diff --git a/packages/compiler-sfc/src/templateTransformAssetUrl.ts b/packages/compiler-sfc/src/templateTransformAssetUrl.ts index 0b7c9175f4..3ca2984e7e 100644 --- a/packages/compiler-sfc/src/templateTransformAssetUrl.ts +++ b/packages/compiler-sfc/src/templateTransformAssetUrl.ts @@ -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