From 7c36ec9175ed2f145cf735dfe54b1a7e4c958701 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 14 Feb 2023 02:21:29 +1100 Subject: [PATCH 1/5] fix: insert the charset before the title --- packages/vue-renderer/src/renderers/ssr.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/vue-renderer/src/renderers/ssr.js b/packages/vue-renderer/src/renderers/ssr.js index ed7aba75bf39..fa16a13cd42d 100644 --- a/packages/vue-renderer/src/renderers/ssr.js +++ b/packages/vue-renderer/src/renderers/ssr.js @@ -130,7 +130,14 @@ export default class SSRRenderer extends BaseRenderer { }) if (meta) { - HEAD += meta.title.text() + meta.meta.text() + // charset must come before the title to avoid encoding issues + const charset = meta.meta.text({ charset: true }) + let metaTags = meta.meta.text() + if (charset) { + HEAD += charset + metaTags = metaTags.replace(charset, '') + } + HEAD += meta.title.text() + metaTags } // Add meta if router base specified From 2760e3bcb2e17096a0529155281249b3ef8aa8b2 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 14 Feb 2023 02:39:21 +1100 Subject: [PATCH 2/5] chore: apply to SPA as well --- packages/vue-renderer/src/renderers/spa.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/vue-renderer/src/renderers/spa.js b/packages/vue-renderer/src/renderers/spa.js index 196e837491a0..561168720799 100644 --- a/packages/vue-renderer/src/renderers/spa.js +++ b/packages/vue-renderer/src/renderers/spa.js @@ -71,10 +71,18 @@ export default class SPARenderer extends BaseRenderer { // BODY_ATTRS meta.BODY_ATTRS = m.bodyAttrs.text() + meta.HEAD = '' + // charset must come before the title to avoid encoding issues + const charset = m.meta.text({ charset: true }) + let metaTags = m.meta.text() + if (charset) { + meta.HEAD += charset + metaTags = metaTags.replace(charset, '') + } + meta.HEAD += meta.title.text() + metaTags + // HEAD tags - meta.HEAD = - m.title.text() + - m.meta.text() + + meta.HEAD += m.link.text() + m.style.text() + m.script.text() + From 99d15208af8d094926ce573579e2fe8fef12099f Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 14 Feb 2023 03:16:05 +1100 Subject: [PATCH 3/5] chore: fix test --- packages/vue-renderer/src/renderers/spa.js | 6 +++--- packages/vue-renderer/src/renderers/ssr.js | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/vue-renderer/src/renderers/spa.js b/packages/vue-renderer/src/renderers/spa.js index 561168720799..8bb1a9969fb5 100644 --- a/packages/vue-renderer/src/renderers/spa.js +++ b/packages/vue-renderer/src/renderers/spa.js @@ -71,18 +71,18 @@ export default class SPARenderer extends BaseRenderer { // BODY_ATTRS meta.BODY_ATTRS = m.bodyAttrs.text() - meta.HEAD = '' // charset must come before the title to avoid encoding issues - const charset = m.meta.text({ charset: true }) let metaTags = m.meta.text() + const charset = m.meta.text({ charset: true }) if (charset) { meta.HEAD += charset metaTags = metaTags.replace(charset, '') } - meta.HEAD += meta.title.text() + metaTags // HEAD tags meta.HEAD += + m.title.text() + + metaTags + m.link.text() + m.style.text() + m.script.text() + diff --git a/packages/vue-renderer/src/renderers/ssr.js b/packages/vue-renderer/src/renderers/ssr.js index fa16a13cd42d..b91dbb2684dd 100644 --- a/packages/vue-renderer/src/renderers/ssr.js +++ b/packages/vue-renderer/src/renderers/ssr.js @@ -129,10 +129,11 @@ export default class SSRRenderer extends BaseRenderer { ln: this.options.dev }) + console.log('in ssr') if (meta) { // charset must come before the title to avoid encoding issues - const charset = meta.meta.text({ charset: true }) let metaTags = meta.meta.text() + const charset = meta.meta.text({ charset: true }) if (charset) { HEAD += charset metaTags = metaTags.replace(charset, '') From a793876373cf2ccbbf9d2b48ba1cb3c789667220 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 14 Feb 2023 03:18:31 +1100 Subject: [PATCH 4/5] chore: remove artifact --- packages/vue-renderer/src/renderers/ssr.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/vue-renderer/src/renderers/ssr.js b/packages/vue-renderer/src/renderers/ssr.js index b91dbb2684dd..e58b169ebc2f 100644 --- a/packages/vue-renderer/src/renderers/ssr.js +++ b/packages/vue-renderer/src/renderers/ssr.js @@ -129,7 +129,6 @@ export default class SSRRenderer extends BaseRenderer { ln: this.options.dev }) - console.log('in ssr') if (meta) { // charset must come before the title to avoid encoding issues let metaTags = meta.meta.text() From 8247d6f94001293c50d0fe53fba34629364e4ed3 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 13 Feb 2023 23:24:08 +0000 Subject: [PATCH 5/5] test: add assertion --- test/dev/basic.ssr.test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/dev/basic.ssr.test.js b/test/dev/basic.ssr.test.js index 8cc0a7f7f17f..646bafd1bb6b 100644 --- a/test/dev/basic.ssr.test.js +++ b/test/dev/basic.ssr.test.js @@ -86,6 +86,12 @@ describe('basic ssr', () => { expect(html).toContain('

I can haz meta tags

') expect(html).toContain('