Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
forked fromvuejs/vue

Commitf077ed1

Browse files
committed
fix(ssr): fix ssr template publicPath generation
fixvuejs#9145
1 parent93850f4 commitf077ed1

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

‎src/server/template-renderer/index.js‎

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ export default class TemplateRenderer {
6060
// extra functionality with client manifest
6161
if(options.clientManifest){
6262
constclientManifest=this.clientManifest=options.clientManifest
63-
this.publicPath=clientManifest.publicPath
63+
// ensure publicPath ends with /
64+
this.publicPath=clientManifest.publicPath===''
65+
?''
66+
:clientManifest.publicPath.replace(/([^\/])$/,'$1/')
6467
// preload/prefetch directives
6568
this.preloadFiles=(clientManifest.initial||[]).map(normalizeFile)
6669
this.prefetchFiles=(clientManifest.async||[]).map(normalizeFile)
@@ -114,7 +117,7 @@ export default class TemplateRenderer {
114117
return(
115118
// render links for css files
116119
(cssFiles.length
117-
?cssFiles.map(({ file})=>`<link rel="stylesheet" href="${this.getPublicPath(file)}">`).join('')
120+
?cssFiles.map(({ file})=>`<link rel="stylesheet" href="${this.publicPath}${file}">`).join('')
118121
:'')+
119122
// context.styles is a getter exposed by vue-style-loader which contains
120123
// the inline component styles collected during SSR
@@ -153,7 +156,7 @@ export default class TemplateRenderer {
153156
extra=` type="font/${extension}" crossorigin`
154157
}
155158
return`<link rel="preload" href="${
156-
this.getPublicPath(file)
159+
this.publicPath}${file
157160
}"${
158161
asType!=='' ?` as="${asType}"` :''
159162
}${
@@ -179,7 +182,7 @@ export default class TemplateRenderer {
179182
if(alreadyRendered(file)){
180183
return''
181184
}
182-
return`<link rel="prefetch" href="${this.getPublicPath(file)}">`
185+
return`<link rel="prefetch" href="${this.publicPath}${file}">`
183186
}).join('')
184187
}else{
185188
return''
@@ -206,7 +209,7 @@ export default class TemplateRenderer {
206209
constasync=(this.getUsedAsyncFiles(context)||[]).filter(({ file})=>isJS(file))
207210
constneeded=[initial[0]].concat(async||[],initial.slice(1))
208211
returnneeded.map(({ file})=>{
209-
return`<script src="${this.getPublicPath(file)}" defer></script>`
212+
return`<script src="${this.publicPath}${file}" defer></script>`
210213
}).join('')
211214
}else{
212215
return''
@@ -228,10 +231,6 @@ export default class TemplateRenderer {
228231
}
229232
returnnewTemplateStream(this,this.parsedTemplate,context||{})
230233
}
231-
232-
getPublicPath(file:string){
233-
returnpath.posix.join(this.publicPath,file)
234-
}
235234
}
236235

237236
functionnormalizeFile(file:string):Resource{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp