рдорд▓реНрдЯреА рдЬрд╝реЛрди рдПрдХ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдбреЛрдореЗрди рдкрд░ рдХрдИ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдРрдк рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмреЗрд╕рдкреЗрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЕрдЧрд▓реЗ.рдЬреЗрдПрд╕ рдХреЗ рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪреВрдБрдХрд┐ рд╣рдо рдЕрднреА рдРрдкреНрд╕ рдХреЛ рдирд╛рдо рд╕реНрдерд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдРрдк рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╛рдо рд╣реЛрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдореИрдВ next.config.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ basepath
рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдиреЗрдХреНрд╕рдЯ (рд░рд╛рдЙрдЯрд░, рд▓рд┐рдВрдХ, рд╕реНрдЯреЗрдЯрд┐рдХ рдПрд╕реЗрдЯреНрд╕ рдЗрддреНрдпрд╛рджрд┐) рдХреЗ рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмреЗрд╕рдкреЗрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ рдФрд░ рд╕рд╣реА рд░рд╛рд╕реНрддреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╕рднреА рд╡рд╛рдВрдЫрд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдШреЛрдВрд╕рд▓рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдмреЗрд╕рдкрд╛рде рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рдлреА рдмрджрд╕реВрд░рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреЗрд╕рдкреЗ рдПрдХ рд╕реНрддрд░ рдХреЗ рд░рд╛рд╕реНрддреЗ рдирд╣реАрдВ рд╣реИрдВред
рджреВрд╕рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрдирдХрд╛рд░реА рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдиреБрд░реЛрдз рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреЗрд╕рдкреЗрде рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЗрдПрд╕ рдРрдк рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рд▓рд┐рдВрдХ рдШрдЯрдХ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдмреЗрд╕рдкреЗ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдЕрдЧрд▓реЗ for.js. рдХреА рдХрд╕реНрдЯрдо рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдпрд╣ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
assetPrefix
рд╕рдорд╛рдзрд╛рди рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
module.exports = {
assetPrefix: NOW_URL ? `https://${alias}` : 'http://localhost:4000'
}
рдЕрдЧрд░ рдореИрдВ рдЗрд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ рддреЛ рд╕рдм рдХреБрдЫ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
module.exports = {
assetPrefix: NOW_URL ? `https://${alias}/account` : 'http://localhost:4000/account'
}
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╣рдореЗрдВ рдЗрд╕реЗ 2 рдЪрд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
module.exports = {
assetPrefix: NOW_URL ? `https://${alias}` : 'http://localhost:4000',
basepath: '/account'
}
cc @jxnblk
cc @alexindigo @DullReferenceException
рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ feedback
рдХреЛрдб рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ assetPrefix
рдХреЛ рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛:
module.exports = {
host: NOW_URL ? `https://${alias}` : 'http://localhost:3000',
basePath: '/account',
}
рд╣рдо рдЕрднреА рднреА assetPrefix
рдЪрд░ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред
рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЗрди рджреЛ рдЪрд░ рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдареАрдХ рд╣реИред
рд░реВрдЯрд┐рдВрдЧ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрдЧрд▓реЗ .js рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХреЗрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рд╕рд╣реА рдирд╛рдо рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рдбрд░ рд▓рдЧрддрд╛ рд╣реИред
рдПрдХ рдкрдХреНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рднреА рдХрдо рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЙрди рджреЛ рдкреАрдЖрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИ:
https://github.com/panter/next.js/pull/2 (рд╡рд┐рднрд╛рдЬрди)
https://github.com/panter/next.js/pull/1 (рджреЛрдиреЛрдВ рдкрд╛рд╕)
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ assetPrefix
рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рддреЛрдбрд╝рдирд╛ рдФрд░ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ basePath
рдЕрд▓рдЧ рд╣реИред
рдХреНрдпрд╛ assetPrefix
рд╕рд╣реА рдирд╛рдо рд╣реИ? рджреЛрдиреЛрдВ рдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ?
assetPrefix
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП
рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
assetPrefix
рдХрд╛ рдЙрдкрдпреЛрдЧ assetPrefix
рд╣реИ, рддреЛ рд░рд╛рдЙрдЯрд░ рдХреЛ рд╕реНрдкрд░реНрд╢ рди рдХрд░реЗрдВ (рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░)assetPrefix
рдФрд░ basePath
рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИрдВ assetPrefix
рд▓реЛрдб рдмрдВрдбрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, basePath
рд░реВрдЯрд░ рд╕реЗassetPrefix
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ basePath
рд╣реИ, рддреЛ рдмрдВрдбрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП basePath
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рд░реВрдЯрд░ рдореЗрдВ basePath
рдЬреЛрдбрд╝реЗрдВassetPrefix
рдФрд░ рди рд╣реА basePath
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╣рдо рдХреБрдЫ рднреА рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрдм assetPrefix
рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)cc @alexindigo @DullReferenceException @ 3rd-Eden
рдХреНрдпрд╛ рдЖрдк рдЙрдХреНрдд рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/zeit/next.js/issues/4998#issuecomment -414978297
@tomaswitek рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди assetPrefix
рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╡рд╣ рд╕рдВрдкрддреНрддрд┐ рдЙрдкрд╕рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: "assetPrefix":"https://static.trulia-cdn.com/javascript"
рдФрд░ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдПрдХ рд╣реА рдбреЛрдореЗрди рдкрд░ рдХрдИ рдЬрд╝реЛрди (рд╣рдо рдЙрдиреНрд╣реЗрдВ рджреНрд╡реАрдк рдХрд╣рддреЗ рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡реАрдк рдкрд░ "рдмреЗрд╕рдкрд╛рд╕рд┐рдВрдЧ" рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдПрдВ:
рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рджреНрд╡реАрдк A
рдФрд░ B
, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдПрдХ-рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреНрд╡реАрдк рдкрд░ рджреНрд╡реАрдк рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рддреИрдирд╛рддреА рдХреА рдЪрд┐рдВрддрд╛ рдмрдирд╛рдо рдЖрд╡реЗрджрди рдХреА рдЪрд┐рдВрддрд╛ рд╣реИред
рддреИрдирд╛рддреА рдХреА рдЪрд┐рдВрддрд╛ рдмрдирд╛рдо рдЖрд╡реЗрджрди рдХреА рдЪрд┐рдВрддрд╛ - рдЖрд╡реЗрджрди рдХрд╛ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЖрдиреЗ рд╡рд╛рд▓реЗ http рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ - рдЗрд╕рдиреЗ рдЙрди рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рдЗрд╕реЗ рдХрд╣реАрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЛрдореЗрди, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рдВ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдпрд╛ рдЕрдиреНрдп рдорд╛рдзреНрдпрдореЛрдВ рд╕реЗ рдРрдк рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХреНрд░реЙрд╕ рд▓рд┐рдВрдХ - рджреНрд╡реАрдкреЛрдВ рдХреА рднрд╛рд╡рдирд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рддреИрдирд╛рддреА рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреНрдЮрд╛рди рд▓реАрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рд▓рд┐рдП рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ (рдЕрдЧрд▓реА рджреБрдирд┐рдпрд╛ рдореЗрдВ _and рдпрд╣ рдХрд╕реНрдЯрдо <IslandALink>
рддрд░рд╣ рдХреЗ рдШрдЯрдХреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ) рдорд╛рд░реНрдЧ_)ред
рдЕрдм рддрдХ рдпрд╣ рд╕рднреА рд╕реАрдзреЗ рдЖрдЧреЗ рд╣реИ - рд╕рднреА рджреНрд╡реАрдк рдПрдХ рд╣реА рдбреЛрдореЗрди рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдкреВрд░реНрдг рдкрде ( /path1
, path2
, рдЗрддреНрдпрд╛рджрд┐) рдХрд╛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рджреВрд╕рд░рд╛ рджреНрд╡реАрдк рдЙрди рд░рд╛рд╕реНрддреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡реАрдк рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрдд (рдЬреЛ рд╡реЗрдм рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ) рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :)
рдЬрдм рд╣рдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреЗрд╕рдкрд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ - рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡реАрдк рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рддрдп рдХрд░рдирд╛) рдХрд┐ рд╡рд╣ рд╕реНрд╡рдпрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЖрдзрд╛рд░ рд╣реИ? рдлрд┐рд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИ? рдпрд╛ рджреНрд╡реАрдк рдП рдХреЛ рддреИрдирд╛рддреА рдкрде рдХрд╛ рдЕрдЬреНрдЮреЗрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдлрд┐рд░ рджреНрд╡реАрдк рдмреА рдХреЛ рддреИрдирд╛рдд рджреНрд╡реАрдк рдП рдХреИрд╕реЗ рдорд┐рд▓реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рджреНрд╡реАрдк рдП рдЦреБрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирддрд╛ рд╣реИ? рдпрд╛ рдЖрдкрдХреЛ рд╕рднреА рддреИрдирд╛рдд рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреНрдп рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╕рдкреИрде рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреА рд╣реЛрдЧреА? рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдЖрдзреБрдирд┐рдХ рддрд░реАрдХреЗ рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдирдП рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рднреА рджреНрд╡реАрдкреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред
рдпрд╛ рдЖрдкрдиреЗ рдХрд╣рд╛рдиреА рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХреА?
рдзрдиреНрдпрд╡рд╛рджред
^ рдпрд╣ рд╕реБрдмрд╣ рдХреА рдХреЙрдлреА рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред :)
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рд▓реЛрдЧреЛрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реЗ рдореБрджреНрджреЗ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рд╛ред
@timneutkens рд╣рд╛рдБ assetPrefix
рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ basePath
, рдареАрдХ рдпрд╣реА рд╣рдордиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИред рдЬрдм рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдореБрдЭреЗ рдХрд┐рддрдиреА рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓рдиреА рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рджреВрд╕рд░рд╛ рд░рд╛рд╕реНрддрд╛ рд╕рд╛рдл рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдмреИрдХ рдХрд░реВрдВрдЧрд╛ред рдЪрд▓реЛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд░рдЦреЗрдВ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдмрд╕ рдЬреЛрд░-рдЬреЛрд░ рд╕реЗ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред
рдЖрдкрдХреЗ рд╡рд┐рд╕реНрддреГрдд рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП @alexindigo Thx рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ your
рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдореБрдЭреЗ рдпрд╣рд╛рдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
assetPrefix
рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рд░реВрдЯрд┐рдВрдЧ, рд╕реНрдЯреИрдЯрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдЖрджрд┐ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╛рдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо basePath
рдкрд░рд┐рдЪрдп рджреЗрдХрд░ рдЗрд╕ рд╕рдорд╛рдпреЛрдЬрди рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЯреВрдЯреЗрдЧрд╛ рдФрд░ рдпрд╣ рдЬрдЯрд┐рд▓рддрд╛ рдирд╣реАрдВ рдмрдврд╝рд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ basePath
рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИредрдЖрд╡реЗрджрди рдХрд╛ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдБ рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рд╣реИ! рд╣рдо рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдкреНрд░реЙрдХреНрд╕реА рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рд╣реЗрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлрд┐рд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИ?
рд░рд╛рдЙрдЯрд░ рдХреЛ рд╕рдВрджрд░реНрднрдкреИрде рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрд╕реНрдЯрдо рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛ред
рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡реАрдк рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рддрдп рдХрд░рдирд╛) рдХрд┐ рд╡рд╣ рд╕реНрд╡рдпрдВ рддреИрдирд╛рддреА рдмреЗрд╕рдкрд╛рдЯ рд╣реИ? рдпрд╛ рджреНрд╡реАрдк рдП рдХреЛ рддреИрдирд╛рддреА рдкрде рдХрд╛ рдЕрдЬреНрдЮреЗрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрд╣ рд╣реЛрдирд╛ рдирд╣реАрдВ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣рд╛рдВ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдмреЗрд╕рдкрд╛рде рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХреЗ рд╕рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлрд┐рд░ рджреНрд╡реАрдк рдмреА рдХреЛ рддреИрдирд╛рдд рджреНрд╡реАрдк рдП рдХреИрд╕реЗ рдорд┐рд▓реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рджреНрд╡реАрдк рдП рдЦреБрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирддрд╛ рд╣реИ? рдпрд╛ рдЖрдкрдХреЛ рд╕рднреА рддреИрдирд╛рдд рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреНрдп рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╕рдкреИрде рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреА рд╣реЛрдЧреА? рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдЖрдзреБрдирд┐рдХ рддрд░реАрдХреЗ рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдирдП рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рднреА рджреНрд╡реАрдкреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд░реВрдЯрдкрде рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдирд┐рд░реНрдпрд╛рдд рдореЗрдВ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдмреЗрд╕рдкрд╛рдЯ рдЪрд░ рд╣рд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА assetPrefix
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реИрд╕реЗ рднреА рдЕрдкрдирд╛ рдорд╛рд░реНрдЧ рд╣реИред рдЬреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреНрд░реЙрд╕ рд▓рд┐рдВрдХ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд╣рдорд╛рд░реЗ рдХреНрд╖реЗрддреНрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред
рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдЖрдзреБрдирд┐рдХ рддрд░реАрдХреЗ рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдирдП рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рднреА рджреНрд╡реАрдкреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред
рдореБрдЭреЗ рдПрдХ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреБрдЫ рдЬрд╝реЛрди рдореЗрдВ рдмреЗрд╕рдкреИрде рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдРрдк рдмрд┐рдирд╛ рдорд▓реНрдЯреАрдкреНрд▓ рд╕реЗрдЯрдЕрдк рдХреЗ рднреА рдмреЗрд╕рдкрд╛рдЯ рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗред
@alexindigo рдХреНрдпрд╛ рдЖрдк pls рд╣рдореЗрдВ рдПрдХ рджреЛ рдЕрд╕рд▓реА рджреНрд╡реАрдк рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВрдиреЗ рдПрдХ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди _next
рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдбреЛрдореЗрди рдкрд░ рдПрдХ рдкреГрд╖реНрда рдирд╣реАрдВ рдорд┐рд▓рд╛
рдХреНрдпрд╛ рдЖрдкрдХреЗ рд╕рднреА рджреНрд╡реАрдкреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ?
"assetPrefix":"https://static.trulia-cdn.com/javascript"
@tomaswitek
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдбреЛрдореЗрди рдФрд░ рди рд╣реА рдЙрдк рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред (рдбреЛрдореЗрди рдкреНрд░рддрд┐рдмрдВрдз рдФрд░ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд╣реАрдВ)
рдУрд╣, рддреЛ рдЖрдк рд╕реАрдбреАрдПрди рдХреЛ рд╢рд╛рд╕реНрддреНрд░реАрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реАрдзреЗ рдкреНрд░рддреНрдпреЗрдХ рдРрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рдВрдкрддреНрддрд┐ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ? рд╕рдордЭрд╛ред
рдХрд┐рд╕реА рдПрдХрд▓ рдбреЛрдореЗрди рдкрд░ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рд░реВрдЯрд┐рдВрдЧ, рд╕реНрдЯреИрдЯрд┐рдХ рдлрд╛рдЗрд▓реНрд╕ рдЖрджрд┐ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╛рдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рдЗрд╕ рд╕рдорд╛рдпреЛрдЬрди рдХреЛ рдмреЗрд╕рдкрд╛рде рд╢реБрд░реВ рдХрд░рдХреЗ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЯреВрдЯреЗрдЧрд╛ рдФрд░ рдпрд╣ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдирд╣реАрдВ рдмрдврд╝рд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдмреЗрд╕рдкрд╛рде рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ @timneutkens рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
Btw, рдпрд╣ "рдирд╣реАрдВ рдерд╛, рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рди рдЬреЛрдбрд╝реЗрдВ" :) рдпрд╣ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдерд╛ - "рд╢рд╛рдпрдж рд╣рдо рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЧреНрд░ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ" :)
рдпрд╣ рд╣реЛрдирд╛ рдирд╣реАрдВ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣рд╛рдВ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдмреЗрд╕рдкрд╛рде рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХреЗ рд╕рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рдБред рдпрд╣ рдХреЗрд╡рд▓ рддрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдард┐рди рд╕рдордп рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рджреНрд╡реАрдк рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╡реЗ 100% рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ? :)
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд░реВрдЯрдкрде рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдирд┐рд░реНрдпрд╛рдд рдореЗрдВ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЖрд╕рд╛рдиреА рд╕реЗ), рдЪреВрдВрдХрд┐ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдмреЗрд╕рдкрд╛рдЯ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рдХреЛрдб рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп (рдЪрд░рдг, рдкреНрд░реАрдкреНрд░реЛрдб, рдкреНрд░реЛрдбрдХреНрдЯреНрд╕) рдХреА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддреИрдирд╛рддреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдкрд░реАрдХреНрд╖рдг env, рдЖрджрд┐)ред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рд╕рднреА рджреНрд╡реАрдкреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ?
"рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕": " https://static.trulia-cdn.com/javascript "
рд╣рд╛рдВ, рд╕рднреА рджреНрд╡реАрдк рдЕрдкрдиреА рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ рд╕рд╛рдордЧреНрд░реА рд╣реИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╣реИ, рдпрд╣ рди рдХреЗрд╡рд▓ рдЧреИрд░-рдореБрджреНрджрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдлрд╛рдпрджреЗрдордВрдж рд╣реИред (рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдХрд▓рд╛рдХреГрддрд┐ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╕рдВрдкрддреНрддрд┐ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд╕рдордп рд╕реАрдбреАрдПрди рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ)ред
рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдРрдк рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ "рдирд┐рдпрдорд┐рдд html" рдЕрдиреБрд░реЛрдз рд╣реИрдВ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореБрдЭреЗ trulia.com рдкрд░ рдХреЛрдИ "_next" рдкрде рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛
рджреНрд╡реАрдк рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП:
рд╣рдорд╛рд░рд╛ рддрд╛рдЬрд╝рд╛ рдмреНрд░рд╛рдВрдб рдирдпрд╛ рджреНрд╡реАрдк - рдкрдбрд╝реЛрд╕реА рдкреГрд╖реНрда - https://www.trulia.com/n/ca/san-francisco/pacific-heights/81571 (рдФрд░ рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: http: //www.trunia com / рдЖрд╕-рдкрдбрд╝реЛрд╕)
рдпрд╣ рджреНрд╡реАрдк рд╕рднреА /n/*
рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдФрд░ рдПрдХ рдЕрдиреНрдп рджреНрд╡реАрдк рд╣рдорд╛рд░рд╛ рд▓реЙрдЧрд┐рди рдкреЗрдЬ рд╣реИ - https://login.trulia.com/login - рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЛрдореЗрди рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ рд╣реА рддреИрдирд╛рддреА рд╣реИред :)
рдФрд░ рдпрд╣ рджреНрд╡реАрдк /login
, /signup
рдЬреИрд╕реЗ рдпреВрдЖрд░рдПрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред
@alexindigo рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рдЙрджрд╛рд╣рд░рдг ay anaylzing рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдХреБрдЫ рд╕рд╡рд╛рд▓ рд╣реИрдВ
рдЖрдк рдЕрднреА рднреА рд╣рд░ рджреНрд╡реАрдк рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реАрдбреАрдПрди рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдкрддреНрддрд┐ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдк pls рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм https://www.trulia.com/n/ca/san-francisco/pacific-heights/81571 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ /n
рдкрдбрд╝реЛрд╕ рдХреЗ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдП рдЦрдбрд╝рд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рд╣реА рджреНрд╡реАрдк рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рджреНрд╡реАрдк рдкрд░ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?
рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рджреНрд╡реАрдк рдХреЗ рдЕрдВрджрд░ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдХрд╕реНрдЯрдо рд╕рдорд╛рдзрд╛рди рд╣реИ?
рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡реАрдк рдХреЗ рдЕрдВрджрд░ рдорд╛рд░реНрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢ Neighborhood overview
рдкрд╛рд╕ url рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдХрдореЛрдмреЗрд╢ рд╕рд┐рд░реНрдл рдореЛрдбрд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╣реИред рд▓реЙрдЧрд┐рди рдореЗрдВ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╕реНрдЯрдо рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЖрдкрдХреЗ рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ your
Btw, рдпрд╣ "рдирд╣реАрдВ рдерд╛, рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рди рдЬреЛрдбрд╝реЗрдВ" :) рдпрд╣ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдерд╛ - "рд╢рд╛рдпрдж рд╣рдо рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЧреНрд░ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ" :)
рдпрдХреАрди рд╣реИ, рдпрд╣ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЕрдЧрд▓реЗ рдХреЛ рдЫреВрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ
рд╣рд╛рдБред рдпрд╣ рдХреЗрд╡рд▓ рддрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдард┐рди рд╕рдордп рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рджреНрд╡реАрдк рдмрдирд╛рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╡реЗ 100% рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ? :)
рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдФрд░ рди рд╣реА рдХрд╣рд╛ рдХрд┐ рдореИрдВ рдПрдХ "рджреНрд╡реАрдк" рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рд╕рд┐рд░реНрдл @timneutkens рдХреЗ рд╕рд╛рде рдПрдХ рдЪреИрдЯ рдереА рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдФрд░ рдЯрд┐рдо рдХрд╛ рдЬрд╡рд╛рдм рдореВрд▓ рд░реВрдк рд╕реЗ next.js
рдмреЗрд╕рдкреЗрдереНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдереЛрдбрд╝реА рд╕реА рдЧреБрдЧрд▓реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдереЛрдбрд╝рд╛ рдпреЛрдЧрджрд╛рди рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рдмрд╛рдж рдореЗрдВ рдЯрд┐рдо рдиреЗ рдореБрдЭреЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдВрдЧ рдХрд┐рдпрд╛ рдФрд░ рдореИрдВ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд╣реВрдВред
рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЖрд╕рд╛рдиреА рд╕реЗ), рдЪреВрдВрдХрд┐ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдмреЗрд╕рдкрд╛рдЯ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдордп рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рдХреЛрдб рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп (рдЪрд░рдг, рдкреНрд░реАрдкреНрд░реЛрдб, рдкреНрд░реЛрдбрдХреНрдЯреНрд╕) рдХреА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддреИрдирд╛рддреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдкрд░реАрдХреНрд╖рдг env, рдЖрджрд┐)ред
рдпрджрд┐ рдЖрдк рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рдВрднрд╡рдд: рдПрдХрдорд╛рддреНрд░ рд╕реАрдзрд╛ рддрд░реАрдХрд╛ рд╕рдВрднрд╡рдд: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдмреЗрд╕рдкрд╛рдЯ рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рдЖрдкрдХрд╛ рдмрд┐рдВрджреБ рдкрддрд╛ рд╣реИред рджреВрд╕рд░реА рддрд░рдл, рдХреНрдпрд╛ рд╡рд╛рдХрдИ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдЖрдк рдЕрднреА рднреА рд╡рд┐рднрд┐рдиреНрди рдбреЛрдореЗрди рдФрд░ рдкреЛрд░реНрдЯ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ env рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмреЗрд╕рдкрд╛рде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реБрдкреНрд░рднрд╛рдд @tomaswitek :)
"рдмреЗрд╕рдкрд╛рде" рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдЕрдиреБрднрд╡, рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рдзреЛрдЦрд╛ рджреЗрдиреЗ рд╡рд╛рд▓реА рдЬрдЯрд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рднрд╛рдЧреЗ рдмрд┐рдирд╛,
рд▓реЗрдХрд┐рди рдпрд╣ рдХрдИ рдХреЛрдгреЛрдВ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХрд┐ рдЖрдк рдХрд┐рд╕ рддрд░рд╣ рдЧрд╣рд░реЗ рд╡рд┐рд▓рдп рдХреА рдУрд░ рдЕрдЧреНрд░рд╕рд░ рд╣реЛрдВрдЧреЗ - рдХрдИ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ (рдФрд░ рдпрджрд┐) рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рдЫрддрд░реА рдХреЗ рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВред рдлреНрд░реЗрдо рдХреЗ рдмреАрдЪ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рдореБрдЦ) рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ :)
рдЖрдк рдЕрднреА рднреА рд╡рд┐рднрд┐рдиреНрди рдбреЛрдореЗрди рдФрд░ рдкреЛрд░реНрдЯ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ env рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмреЗрд╕рдкрд╛рде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛрдВрдЧреЗ рдЬрд╣рд╛рдВ рд╡рд╣ "рдмреЗрд╕рдкрд╛рдЯ" рдЖрдкрдХреЗ рд░реВрдЯрд┐рдВрдЧ рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдХреБрдЫ рдРрд╕рд╛ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ - рдЬреИрд╕реЗ pages
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (btw) рдХреЗ рдЕрдВрджрд░ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдЧрд╛ред рдмреЗрд╕рдкрд╛рдЯ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ)ред рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдЖрдкрдХреЛ рд░реЛрдХрддреА рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдиреЗрдЬреН _next
рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред
рдФрд░ рдпрд╣ рдЕрдзрд┐рдХ рд╕рдВрдХреАрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХрдо рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдФрд░ рднреА рдЖрдЧреЗ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдпрджрд┐ рд╣рдо рдПрд╕реЗрдЯрдкрд╛рде рдкреНрд░рддрд┐ рдПрд╕реЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдЧрд▓рд╛.рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореИрдк) - рдпрд╣ рд╣рдореЗрдВ рдРрдкреНрд╕ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рд╕рдВрдкрддреНрддрд┐ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред
рдФрд░ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдкреАрдЖрд░ рд╣реИред ;) / cc @timneutkens рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЙрд╕ рдкрд┐рд▓реНрд▓реЗ рдХреЗ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХрд╛ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИред :)
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдирд╣реАрдВ рдЬреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рд╣рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдЖрдзрд╛рд░рд┐рдд рд╕рд░реНрд╡рд░ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рд░реАрдбрдореА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореИрдВрдиреЗ рдХреБрдЫ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреЛ рдЗрди рдореБрджреНрджреЛрдВ рдореЗрдВ рдЗрдзрд░-рдЙрдзрд░ рд╣реЛ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред
рдирдорд╕реНрддреЗ @ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рдВрдЯрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: https://github.com/panter/next.js/pull/2
рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рддреИрдпрд╛рд░ рд╣реВрдВред
@timneutkens @alexindigo рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ?
рдЕрдЧрд░ рд╣рдореЗрдВ basePath
config рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк assetPath
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрдВ рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдореЗрд░реА рдХрдВрдкрдиреА рднреА рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖ рд░рд╣реА рд╣реИред
рд╣рдо рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдХ рд╡рд┐рд░рд╛рд╕рдд рдРрдк, рдЕрдиреБрднрд╛рдЧ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрднрд╛рдЧ, рдФрд░ Next.js. рдХреА рдЬрдЧрд╣ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ
рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ:
| URL | рдРрдк |
| --- | --- |
| example.com | рд╡рд┐рд░рд╛рд╕рдд |
| example.com/shop | рдЕрдЧрд▓рд╛ |
| example.com/search | рд╡рд┐рд░рд╛рд╕рдд |
| example.com/members | рдЕрдЧрд▓рд╛ |
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рдо рдЕрднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо now.json
рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╣реИ рдЬреЛ рдкреВрд░реЗ рдбреЛрдореЗрди рдХреЗ рд╕рд╛рдордиреЗ рдмреИрдард╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕рдмрдкрде рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдкрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╣рдо рдПрдХ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ (hapi) рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдХреЗ рднреАрддрд░ рднреА рдпрд╣рд╛рдБ рдЬреЛ рдХреБрдЫ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХреЗрдВред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ now.config.json
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рд╣реЛ рдпрд╛ рдорд╛рдЗрдХреНрд░реЛ-рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рд╣рдо рдЗрд╕реА рдЪреАрдЬрд╝ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЕрднреА рддрдХ рд╕рд╣реА рд╕рдВрдпреЛрдЬрди рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИред
рд╣рдо рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрдИ рд╡реИрдзрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП Next.js рдРрдкреНрд╕ рдХреЗ рд╕рд╛рде рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдЕрдм v2 рдкрд░ рд╣реЛрд╕реНрдЯ рдХреА рдЧрдИ рд╣реИред
| URL | рдРрдк |
| - | - |
| example.com | рдЕрдЧрд▓рд╛ |
| example.com/dashboard | рдЕрдЧрд▓рд╛ |
рдЬреИрд╕реА рдХрд┐ рдЙрдореНрдореАрдж рдереА, рд░реВрдЯ рдРрдк рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЪреАрдЬреЗрдВ рджреВрд╕рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдЧ рдЬрд╛рддреА рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо next/link
рд▓рдкреЗрдЯ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ assetPrefix
рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:
export default ({ children, href, ...rest }) => (
<Link href={process.env.NODE_ENV === "production" ? `/dashboard${href}` : href} {...rest}>
{children}
</Link>
);
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ prefetch
рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рддрдм рдпрд╣ рдЧрд▓рдд URL рдкрд░ .js
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ:
рд╣рдорд╛рд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди prefetch
рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕ рдкрд░ рдПрдХ рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред
@timneutkens рдпрджрд┐ рд╕рдореБрджрд╛рдп рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди (https://github.com/panter/next.js/pull/1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдЦреБрд╢ рд╣реИрдВред
рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╣рдо рдЬрд▓реНрдж рд╣реА рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рдкреЗрд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХрд░ рджреЗрдЧрд╛ред
рдЗрд╕рд╕реЗ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖред рдПрдХ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрде рдХреЗ рддрд╣рдд рдЕрдЧрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдХреЛрдИ рдИрдЯреАрдП рд╣реИ?
рдПрдкреАрдЖрдИ
рдХреИрд╕реЗ рд╣рд╛рд▓рдЪрд╛рд▓ рд╣реИ? : рдбреА
рдХреГрдкрдпрд╛ рдереНрд░реЗрдб рдХреЛ рд╕реНрдкреИрдо рди рдХрд░реЗрдВ рдФрд░ рдореБрджреНрджреЗ рдкрд░ рд╣реА GitHub рдХреА on рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
@timneutkens рдХреНрдпрд╛ рдЖрдк рдХреЛрдИ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдПрдкреАрдЖрдИ рдХреНрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХрд░ рджреЗрдЧрд╛? рдЖрдк "рдЬрд▓реНрдж рд╣реА" рдХреНрдпрд╛ рдорд╛рдирддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд▓реНрдЯреА-рдЬрд╝реЛрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ ...
рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рд╕рд░реНрд╡рд░ рдмрдирд╛рдХрд░ рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рд╣рд▓ рдХрд┐рдпрд╛
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: @Zertz
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рдЖрдкрдХреЛ рдЕрднреА рднреА рд▓рд┐рдВрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдлрд┐рд░ рд╕реЗ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд▓рд┐рдВрдХ рдШрдЯрдХ рдмрдирд╛рдХрд░ рдФрд░ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЙрдкрд╕рд░реНрдЧ рдореМрдЬреВрдж рд╣реИ рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рд╕реНрдерд┐рд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдиред
const proxy = require('http-proxy-middleware');
app.setAssetPrefix('/dashboard');
// Express custom server
// Proxy so it works with prefix and without...
// So if asset prefix is set then it still works
const server = express();
server.use(
proxy('/dashboard', {
target: 'http://localhost:3000',
changeOrigin: true,
pathRewrite: {
[`^/dashboard`]: '',
},
}),
);
рдореИрдВ рдЬрд┐рд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣рд╛ рдерд╛ рд╡рд╣ # 7329 рд╣реИ
рдореИрдВ рдЬрд┐рд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣рд╛ рдерд╛ рд╡рд╣ # 7329 рд╣реИ
@timneutkens
рдХреНрдпрд╛ рдЖрдк pls рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реБрдХ рд╣рдорд╛рд░реА рдмреЗрд╕рдкрд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдЧрд╛?
рдФрд░ рд░рд╛рдЙрдЯрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Router.push('/about')
рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╣реБрдХ рдХреЗ рд╕рд╛рде рднреА рдмрджрд▓рд╛ рдЬрд╛рдПрдЧрд╛?
рдЖрдкрдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж ЁЯШП
рд░рд╛рдЙрдЯрд░ рдПрдкреАрдЖрдИ рднреА рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрд╕ рд╕рдордп рдЖрдк url рдХреЗ рд▓рд┐рдП рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рд╣рдо рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореБрджреНрджреЗ рдкрд░ initial рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
@ MMT-LD рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рд░ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╛ рд░рд╛рдЙрдЯрд░ рдзрдХреНрдХрд╛ рдШрдЯрдирд╛ рдкреГрд╖реНрда рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ Your
рдореИрдВрдиреЗ @Zertz рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛!
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рд░рд╛рд╕реНрддреЛрдВ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗ prefetch
рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред
https://github.com/fand/MDMT/blob/master/scripts/copy-preload.js
... рдпрд╣ рдПрдХ рдЧрдВрджреА рдЪрд╛рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реИрд╕реЗ рднреА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ
@nicholasbraun
рдЕрдм рд╣рд░ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╛ рд░рд╛рдЙрдЯрд░ рдкреБрд╢ рдЗрд╡реЗрдВрдЯ рдкреЗрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ or
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХ рдкрд░ 'рдХреЗ рд░реВрдк рдореЗрдВ' рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХ рдЖрдВрддрд░рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 'рдХреЗ рд░реВрдк рдореЗрдВ' рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<Link href={"/${item.link}"} as={"./${item.link}"}>
@nicholasbraun
рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рддрд░реАрдХрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рд░ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╛ рд░рд╛рдЙрдЯрд░ рдзрдХреНрдХрд╛ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ for
рдЗрд╕ рддрд░рд╣ рдХрд╛ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИред рдпрд╣ рд╕реНрдореГрддрд┐ рд╕реЗ рд╣реИ .... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рд╕реЗ рдХреНрдпрд╛ рдЬрд░реВрд░рдд рд╣реИ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
// WithConfig component
import getConfig from 'next/config';
const { publicRuntimeConfig } = getConfig();
const WithConfig = ({ children }) =>
children && children({ config: publicRuntimeConfig });
export default WithConfig;
// Extended Link component
import React from 'react';
import PropTypes from 'prop-types';
import Link from 'next/link';
import { WithConfig } from '../WithConfig';
/*
<Link> component has two main props:
href: the path inside pages directory + query string. e.g. /page/querystring?id=1
as: the path that will be rendered in the browser URL bar. e.g. /page/querystring/1
*/
const NextLink = ({
browserHref,
pagesHref,
whatever,
}) => {
return (
<WithConfig>
{({ config: { pathPrefix } = {} }) => (
<Link
as={pathPrefix ? `${pathPrefix}${browserHref}` : browserHref}
href={pagesHref}
passHref
>
<a>{whatever}</a> // this bit is up to you - children or whatever
</Link>
)}
</WithConfig>
);
};
NextLink.propTypes = {
browserHref: PropTypes.string.isRequired,
pagesHref: PropTypes.string,
};
NextLink.defaultProps = {
pagesHref: undefined,
};
export default NextLink;
рдЙрдкрдпреЛрдЧ:
import NextLink from '../NextLink'
<NextLink browserHref={`/page/1`} pagesHref={`/page?querystring=1`} whatever='I'm the link' />
рд╕реМрднрд╛рдЧреНрдп: рд╕реНрдорд╛рдЗрд▓реА:
рдЬреИрд╕рд╛ рдХрд┐ useLink
RFC рдЕрдм рдЕрд╕реНрд╡реАрдХреГрдд (# 7329) рд╣реИ рдФрд░ basePath
рд╕рдорд░реНрдерди рд╣реЛрдиреЗ рд╕реЗ рд╣рдореЗрдВ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓реЗрдЧреА, рдХреНрдпрд╛ Next.js PR рдХреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╕реНрд╡реАрдХреГрддрд┐ рджреЗрдХрд░ рдЦреБрд╢ рд╣реИ? рдореИрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред
@Tomaswitek рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП , рдпрд╣ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд░рд╛рдЙрдЯрд░ basePath
рдЕрд╡рдЧрдд рд╣реЛред рдХреНрдпрд╛ рдЕрдиреНрдп рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ basePath
рд╕рдорд░реНрдерди рдХреЛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рджреЗрдВрдЧреА?
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдЬрд╛рдЗрди рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдмрд╕ рдПрдХ рдПрдХрд▓ рдЪрд░ рд╣реИ:
module.exports = {
basePath: '/demo'
}
assetPrefix
рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдпрд╣рд╛рдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИ: https://github.com/zeit/next.js/issues/4998#issuecomment -414978297ред
рдЕрджреНрдпрддрди : рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд╕реНрдЯрдо рд░рд╛рдЙрдЯрд░ рдмрдирд╛рдХрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред Next.js рдЕрдкрдиреЗ рд░рд╛рдЙрдЯрд░ рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВред рдореБрдЭреЗ рдпрд╣ рднреА рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ "рдХреЗрд╡рд▓" рд░рд╛рдЙрдЯрд░ рдХреА рдЬрдЧрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧреА; рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╢рд╛рдпрдж Next.js рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рд╕рдорд╕реНрдпрд╛ 2017 рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреА рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ? рдпрд╛ рд╣рдорд╛рд░реЗ рдмреЗрд╕рдкрд╛рде рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛?
рддреЛ рдЗрд╕ рдХрд╛рдо рдХреЛ assetPrefix
рдФрд░ рдПрдХ рдХрд╕реНрдЯрдо <Link>
рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЬреИрд╕реЗ рдХрд┐ https://github.com/zeit/next.js/issues/4998#issuitomment рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред -464345554 рдпрд╛ https://github.com/zeit/next.js/issues/4998#issuecomment -521189412, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗред
assetPrefix
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдерд╛, next.config.js
рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
const assetPrefix = process.env.DEPLOYMENT_BUILD ? '/subdir' : '';
module.exports = {
assetPrefix,
env: {
ASSET_PREFIX: assetPrefix,
},
}
рдЕрдЧрд▓рд╛ рдЪрд░рдг рдХрд╕реНрдЯрдо Link
рдШрдЯрдХ рд╣реИред рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/zeit/next.js/issues/4998#issuecomment -464345554 рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ (рд╕рд░рд▓) рдореЗрдВ href рдЙрдкрд╕рд░реНрдЧ рдХрд░рдирд╛ рд╣реИ:
export default ({ children, href, ...rest }) => (
<Link href={`${process.env.ASSET_PREFIX}${href}`} {...rest}>
{children}
</Link>
);
рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдкреНрд░реАрдлрд╝рд┐рдЯрд┐рдВрдЧ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрд░реЛрдз рдЕрдЪрд╛рдирдХ / subdir /example.js рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ - рдЕрдиреНрдп "рдЙрдкрджрд┐рд░" рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо Link
рдШрдЯрдХ рдХреЗ рд╕рд╛рде, рд╣рдо /subdir/example
рд▓рд┐рдП href рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рдХрд┐ Next.js pages/subdir/example.js
рдкреГрд╖реНрда рдХреЗ рдмрдВрдбрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рддреЛ рдареАрдХ рд╣реИ, рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдкреНрд░реАрдлрд╝реИрдЪрд┐рдВрдЧ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдВрдд рдХреА рддрд░рд╣ рдзреНрд╡рдирд┐ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреВрдПрдХреНрд╕ рдХрд╛рдлреА рдмрджрд╕реВрд░рдд рд╣реИ) рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдРрдк рдореЗрдВ, рдЪреАрдЬреЗрдВ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╣рдо Next.js 9 рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ as
рдареАрдХ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрд╕реНрдЯрдо Link
рдШрдЯрдХ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╣реЛ:
export default ({ children, href, as, ...rest }) => (
<Link
href={`${process.env.ASSET_PREFIX}${href}`}
as={`${process.env.ASSET_PREFIX}${as}`}
{...rest}
>
{children}
</Link>
);
рдЙрдкрдпреЛрдЧ рд╣реИ:
<CustomLink href='/post/[id]' as='/post/1'>...</CustomLink>
рдЬреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
<Link href='/subdir/post/[id]' as='/subdir/post/1'>...</Link>
рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрдм рдЕрдм рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - https://deployment-id.now.sh/subdir/post/1
404 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐, рд╢рд╛рдпрдж рдпрд╣ ( рдЕрджреНрдпрддрди рдХрд░реЗрдВ : рдпрд╣ https://github.com/zeit/next.js/pull/8426#issuecomment-522801831) рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ, рд╣рдо @now/next
рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ/subdir/post/[id]
рдорд╛рдВрдЧрдиреЗ рдкрд░ Next.js рдХреЗ рд░рд╛рдЙрдЯрд░ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ, https://github.com/zeit/next.js/issues/4998#issuecomment -521189412, рдпрд╣ рдЙрдкрд╕рд░реНрдЧ рдХреЗрд╡рд▓ рдЙрд╕реА рддрд░рд╣ рд╣реИ , рди рдХрд┐ href, рдЗрд╕ рддрд░рд╣ (рд╕рд░рд▓реАрдХреГрдд):
export default ({ children, href, as, ...rest }) => (
<Link href={href} as={`${process.env.ASSET_PREFIX}${as}`} {...rest}>
{children}
</Link>
);
рд▓реЗрдХрд┐рди рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛:
рдЖрдкрдХрд╛
<Link>
as
рдореВрд▓реНрдпhref
рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИред рдпрд╣ рдЕрдорд╛рдиреНрдп рд╣реИред
рдпрд╣ https://github.com/zeit/next.js/issues/7488 рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ
рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ basePath
рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рддрдХ рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реВрдВред
@borekb рдореИрдВ рднреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рджреЛ рдмрд╛рд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдм рддрдХ рджреЗрдЦреЗ рдЧрдП рд╕рднреА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред рдЕрднреА рд╣рдо рдЙрддреНрдкрд╛рджрди рдореЗрдВ next.js рдХреЗ рдПрдХ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдмреЗрд╕рдкрд╛рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЬрд▓реНрдж рд╣реА рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рдкреЗрд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХрд░ рджреЗрдЧрд╛ред
@ рдпрд╣ рдХреНрдпрд╛ рдЕрднреА рднреА рдорд╛рдорд▓рд╛ рд╣реИ рдпрд╛ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдмрдВрдж рдерд╛? https://github.com/zeit/next.js/issues/7329
Btwред рдХрд▓ рдпрд╣ рдареАрдХ рдПрдХ рд╡рд░реНрд╖ рд╣реЛрдЧрд╛ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рд╛ year
рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрдВрдЧрд▓реА рд╡рд┐рдЪрд╛рд░ src/pages
рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХрд╛ рд╣реЛрдирд╛ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЙрдЪрд┐рдд рд╕реНрдерд╛рди рдкрд░ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
myapp.example.com
рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ src/pages
рд╕реЗ pages
рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рдХрд░реВрдВрдЧрд╛example.com/myapp
рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ src/pages
pages/myapp
рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд░реВрдВрдЧрд╛рдХрд╕реНрдЯрдо <Link>
рдШрдЯрдХ рдФрд░ assetPrefix
рд╕рдВрдпреЛрдЬрди рдореЗрдВ, рдпрд╣ _could_ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдмрд╣рд╛рджреБрд░ рдирд╣реАрдВ рд╣реВрдВред
рдЙрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
basePath
рд╕рдорд░реНрдерди рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? :)
@nicholasbraun
рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╛ рд░рд╛рдЙрдЯрд░ рдкреБрд╢ рдИрд╡реЗрдВрдЯ рдкреГрд╖реНрда рдХреЛ frowning_face рдкреБрдирдГ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХ рдкрд░ 'рдХреЗ рд░реВрдк рдореЗрдВ' рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХ рдЖрдВрддрд░рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 'рдХреЗ рд░реВрдк рдореЗрдВ' рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<Link href={"/${item.link}"} as={"./${item.link}"}>
рдЖрдкрдиреЗ рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдпрд╛! :)))
рдореИрдВ Router.push(`/route`, `${process.env.BASE_PATH}route`);
рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
@nicholasbraun
рдЕрдм рд╣рд░ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╛ рд░рд╛рдЙрдЯрд░ рдкреБрд╢ рдЗрд╡реЗрдВрдЯ рдкреЗрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ or
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХ рдкрд░ 'рдХреЗ рд░реВрдк рдореЗрдВ' рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд▓рд┐рдВрдХ рдЖрдВрддрд░рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 'рдХреЗ рд░реВрдк рдореЗрдВ' рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<Link href={"/${item.link}"} as={"./${item.link}"}>
рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЕрдЧрд▓реЗ 9 рдлрд╝рд╛рдЗрд▓ рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред /route/[id]
, ${process.env.BASE_PATH}/route${id}
рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ
рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛рддреА рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╕рдорд╛рдзрд╛рди рдпрд╣рд╛рдБ рдкреВрд░реНрд╡-рднрдВрдЧ рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджрд╛ рд╣реИред
рдЕрдЧрд▓реЗ 9 рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЗ href
рдореЗрдВ рдПрдХ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ next
_always_ рд╕рд░реНрд╡рд░ рдорд╛рд░реНрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдЕрдВрдХ рдореЗрдВ рдПрдХ рд░рд┐рдкреНрд░реЛрдбрдХреНрд╢рди рд░реЗрдкреЛ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдЕрдкреЛрд▓реЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреИрд╢ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рд░ рдорд╛рд░реНрдЧ рдкрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреГрд╖реНрда href
рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐рдкреНрд░реЗрдлрд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЕрдЧрд▓реЗ рдорд╛рд░реНрдЧреЛрдВ рдореЗрдВ href
(рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ) - рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдЧрд╣рд░рд╛ рдорд╛рд░реНрдЧ рд╣реИред
рдЬреИрд╕реЗ рдпрджрд┐ рдЖрдк href /prefix/page
(рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреГрд╖реНрда рдХреЗрд╡рд▓ /page
) рд╣реИрдВ рдФрд░ рдЖрдкрдХрд╛ рдЕрдЧрд▓рд╛ href
рдорд╛рд░реНрдЧ /prefix/page/[id]
(рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛ рдпрд╣ 404 рд╣реЛрдЧрд╛) рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдорд╛рд░реНрдЧ рд╣реИ рдФрд░ рдПрдХ рдЙрдерд▓рд╛ рдорд╛рд░реНрдЧ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдорд╛рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рдирдЯ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП
рдЬрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ href
рдкреНрд░реЙрдкреНрд╕ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рдЬреЛ рдмреЗрд╕рдкреИрде рд╣реИ, рдкреНрд░реАрдлреИрдЪ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдкреАрдПрд▓рдЬреЗрдб рдмреЗрд╕рдкреИрде рдФрд░ рдкреНрд░реАрдлреИрдЪ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рднрдпрд╛рдирдХ рд╣реЛрдЧрд╛
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдПрдХ рдПрдХрд▓ рд╕рд░реНрд╡рд░ рд╕реНрд░реЛрдд рд╕реЗ рдХрдИ рдРрдк рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ web/appX/{next project files}
рдореЗрдВ рдЕрд▓рдЧ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдмреЗрд╕рдкрд╛рда рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдЕрдм рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред
рд╕реНрдерд┐рд░ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рднреА basePath
also рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд▓рдЧрддрд╛ рд╣реИ рдХрд╛рдордпрд╛рдмреА ЁЯСП
{
experimental:{
basePath: '/some/dir',
}
}
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдмреБрд░реА рд╕реАрдорд╛ рд╣реИ :(
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдкреАрдЫреЗ рд╕рднреА рдРрдкреНрд╕ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрдереЛрдВ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ /auction-results
рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рд╣реИ)
рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА assetPrefix
рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдФрд░ рдпрд╣ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдРрдкреНрд╕ рдХреЛ рдареАрдХ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЬреИрд╕реЗ: mydomain.com/auction-results/
рдХреБрдЫ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд░реВрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ:
router.get(`/${appPrefix}/`, (req, res) => {
nextApp.render(req, res, '/national', req.params);
});
рд▓реЗрдХрд┐рди рдЬрдм рд╣рдо next/link
рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдиреЗрд╡реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
рдХрд╣рд╛рдБ /auction-results
рдЖрд╡реЗрджрди рдЙрдкрд╕рд░реНрдЧ рд╣реИ, рдФрд░ /national
рдореЗрдВ рдкреЗрдЬ рд╣реИ ~pages/national
<Link href="/national" as="/auction-results/">
<a>Goto National Page</a>
</Link>
рдпрд╣ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ (рднреВрдд рдХреНрд▓рд┐рдХ)
рдкреВрд░реНрдг рдкреГрд╖реНрда рд░рд┐рдлреНрд░реЗрд╢ рд▓рд┐рдВрдХ рдЖрджрд░реНрд╢ рд╕реЗ рдХрдо рд╣реИред
рдЕрдЧрд░ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрджреНрдпрддрди ... рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЗрд╕ рд╕рдордп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдЕрдм рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж, рдореИрдВ рдПрдХ рдирдП рдРрдк рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдореИрдВрдиреЗ рдЬреЛ рд╡рд░реНрдХрдЖрд░реНрдбрд░ рдХрд┐рдП рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ... 'рдкреНрд░реЛрдбрдХреНрд╢рди-рд░реЗрдбреА' рд░рд┐рдПрдХреНрд╢рди fw рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реЗ рдЪрд┐рдВрддрд╛рдЬрдирдХред рдмреЗрд╕рдкреЗрдереНрд╕ рдПрдХ рд╡реЗрдирд┐рд▓рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрджреНрдпрддрди ... рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЗрд╕ рд╕рдордп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдЕрдм рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж, рдореИрдВ рдПрдХ рдирдП рдРрдк рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдореИрдВрдиреЗ рдЬреЛ рд╡рд░реНрдХрдЖрд░реНрдбрд░ рдХрд┐рдП рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ... 'рдкреНрд░реЛрдбрдХреНрд╢рди-рд░реЗрдбреА' рд░рд┐рдПрдХреНрд╢рди fw рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реЗ рдЪрд┐рдВрддрд╛рдЬрдирдХред рдмреЗрд╕рдкреЗрдереНрд╕ рдПрдХ рд╡реЗрдирд┐рд▓рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░рдХреЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред
Next.js рдореЗрд░реА рдЯреАрдо (5 рд▓реЛрдЧ) рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рдореЗрдВ рд╣рдордиреЗ рдЗрди рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ:
рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ Next.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдирдпрд╛ рдФрд░ рдореМрдЬреВрджрд╛) рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЫреЛрдЯрд╛, рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ "рдЕрдкрд╡реЛрдЯ" рдХреЛ рдЖрд╡рд╛рдЬ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдзрд╛рдЧреЗ рдкрд░ on рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ basePath
рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЛрдбрдореИрдк рдкрд░ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреАрдЖрд░ рднреА рд▓рд┐рдЦрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЖрдк рдереНрд░реЗрдб рдкрд░ рд╡рд╛рдкрд╕ рдкрдврд╝рдХрд░ рджреЗрдЦ рд╕рдХрддреЗ рдереЗред
рдпрд╣рд╛рдВ рдкреАрдЖрд░: https://github.com/zeit/next.js/pull/9872 рд╣реИ
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдпреЛрдЧрджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ @vercel.com рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рдЗрд╕ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ: /
@Sletheren basePath рд╕рдорд░реНрдерди рдЕрднреА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╣реИ, рдЕрдкрдиреЗ рдЙрд▓реНрд▓реВ рдЬреЛрдЦрд┐рдореЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реАрдПрдл https://github.com/zeit/next.js/pull/9872
@Sletheren basePath рд╕рдорд░реНрдерди рдЕрднреА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╣реИ, рдЕрдкрдиреЗ рдЬреЛрдЦрд┐рдо рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╕реАрдПрдл # 9872
@ рдорд╛рд░реНрдЯреЗрдкреА рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ рджреЗрдЦ рд▓рд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдПред рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ basePath
рдХреЗрд╡рд▓ рдПрдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрдИ рдЖрдзрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ "URL" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдРрдк рдХреА рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЗ рджреМрд░рд╛рди basePath
рд╕реЗрдЯ рдХрд░рдирд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ (рднрд▓реЗ рд╣реА рдЗрд╕рдХреЗ рдкрд╛рд╕ рд╣реИ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдкрдереЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)
@timneutkens рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдФрд░ рдЕрдкрдбреЗрдЯ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рд╣реЛрдВрдЧреЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ ...
рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдЙрджреНрдпрдо рд╣реЛрдЧрд╛ (рд╕рдВрдкрд░реНрдХ рдЙрджреНрдпрдо рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕рдВрджрд░реНрдн рдХреБрдЫ рдЬрд▓рди рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ)?
рдпрд╣ рд░реЛрдбрдореИрдк рдкрд░ рд▓рдЧрддрд╛ рд╣реИ, рдкреАрдЖрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛; рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдЧрд░ рдЕрдЧрд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣ рдЗрд╕ рдлреАрдЪрд░ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд┐рдХреНрд░реА рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдордирдорд╛рдиреА рдХреАрдорддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреА?
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рд╕реЗрдЯрдЕрдкреЛрдВ рдХреЛ рднреА рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд basePath
рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛ рджреЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЕрдм рдЕрдЧрд▓рд╛ рдкрд░ рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдФрд░ рдкреВрд░реНрдг рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЕрдЧрд▓реА рдмрд╛рд░ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рдирд┐рд╡реЗрд╢ рд╣реЛрдЧрд╛ред
рдЕрдкрдиреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП fwd рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред
FWIW, рдореБрдЭреЗ рдЕрдм рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП:
рдЗрд╕реЗ рдЕрдкрдиреЗ next.config.js
:
module.exports = {
experimental: {
basePath: '/custom',
},
}
рдлрд┐рд░, рдореБрдЭреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рдареАрдХ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА:
рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдкрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред app.use('/custom', (req, res...) => { ...
рдФрд░ рдлрд┐рд░ (рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛) рдореБрдЭреЗ рдЙрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ URL рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдиреЗрдХреНрд╕реНрдЯ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдкрддрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрде рдХреЗ рд╕рд╛рде рдпрджрд┐ рдЖрдк http-proxy
=> рдЙрджрд╛ред ... target: 'http://next:3000/custom
), рдЗрд╕рд▓рд┐рдП рдХрд╕реНрдЯрдо рдкрде рдХреЗ рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рд╣реЛрд╕реНрдЯ рдирд╣реАрдВред рдпрджрд┐ рдЖрдк http-proxy-middleware
рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдХрд╛рдлреА рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдИрдИ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдкрдХреА рдЯреАрдо рдХреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкрд░рд┐рдкрдХреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдорджрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ, рд╢рд╛рдпрдж рд╣рдо рдорджрдж рдХрд░ рд╕рдХреЗрдВ!
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдмрд╕ рдиреЗрдХреНрд╕реНрдЯ рдХреЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдореЛрдб рдХреЗ рд╕рд╛рде рднреА рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рднреА рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред
@timneutkens рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдФрд░ рдЕрдкрдбреЗрдЯ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рд╣реЛрдВрдЧреЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ ...
- рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдЙрджреНрдпрдо рд╣реЛрдЧрд╛ (рд╕рдВрдкрд░реНрдХ рдЙрджреНрдпрдо рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕рдВрджрд░реНрдн рдХреБрдЫ рдЬрд▓рди рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ)?
- рдпрд╣ рд░реЛрдбрдореИрдк рдкрд░ рд▓рдЧрддрд╛ рд╣реИ, рдкреАрдЖрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛; рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдЧрд░ рдЕрдЧрд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣ рдЗрд╕ рдлреАрдЪрд░ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд┐рдХреНрд░реА рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдордирдорд╛рдиреА рдХреАрдорддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреА?
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рд╕реЗрдЯрдЕрдкреЛрдВ рдХреЛ рднреА рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд
basePath
рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛ рджреЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЕрдм рдЕрдЧрд▓рд╛ рдкрд░ рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдФрд░ рдкреВрд░реНрдг рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЕрдЧрд▓реА рдмрд╛рд░ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рдирд┐рд╡реЗрд╢ рд╣реЛрдЧрд╛редрдЕрдкрдиреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП fwd рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред
@ рдкреЗ-рдПрд╕ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдореЗрд░реА рдкреЛрд╕реНрдЯ рдХреЛ рдЧрд▓рдд рд╕рдордЭ рд░рд╣реЗ рд╣реИрдВред
рдЕрдм рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдИ "рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг" рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХрдИ рдореМрдХреЛрдВ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ рдмрд╛рд╣рд░реА рдХрдВрдкрдирд┐рдпрд╛рдВ рдХрдо рд╕рдордп рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд░рд╛рдорд░реНрд╢ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдВрдЪреА рдереАрдВред рдЯреНрдпреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ рдИрдЬреА рдЬреЛрди рд╕рдорд░реНрдерди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рдФрд░ рд░реЛрдбрдореИрдк рдкрд░ рд╣реИред рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╡реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╣реИрдВ, рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ Next.js. рдХрд╛ рдХреЛрдИ рдЙрджреНрдпрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ рд░реЛрдбрдореИрдк рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдЪреНрдЪ-рдкреНрд░рднрд╛рд╡ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдХреА рдХрдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ @vercel.com рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ / Next.js. рдХреЗ рд▓рд┐рдП рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рдорд░реНрдерди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЖрдкрдХреА рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдмрдврд╝рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП @timneutkens tx! рдлрд┐рд░, рд╣рдо рд╕рдм рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ :)
рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЛ!
рдмрд╕рдкрд╛рде рд╕рдорд░реНрдерди next@canary
рдЕрднреА рдмрд╛рд╣рд░ рд╣реИ, рдпрд╣ рдЕрдм рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╕реНрдерд┐рд░ рдЪреИрдирд▓ рдкрд░ рд╣реЛрдЧрд╛ред
рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЧрдИ рд╣реИ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ HTML <base>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ?
рдмрд╕рдкрд╛рде рд╕рдорд░реНрдерди
next@canary
рдЕрднреА рдмрд╛рд╣рд░ рд╣реИ, рдпрд╣ рдЕрдм рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╕реНрдерд┐рд░ рдЪреИрдирд▓ рдкрд░ рд╣реЛрдЧрд╛ред
@timneutkens , рдЗрд╕ рдЬреЛрдбрд╝ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧреИрд░-рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдмреЗрд╕рдкреИрде рд╕рдорд░реНрдерди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдореИрдВ рдмреЗрд╕рдкрд╛рдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд) рдЕрдкреЗрдХреНрд╖рд┐рдд url рдХреЛ рджреА рдЬрд╛рддреА рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЬрдм рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ src рдореЗрдВ рдЖрдзрд╛рд░ рдкрде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рдкрде рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╕рдкреИрде рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ рд╣реИ? рдореИрдВрдиреЗ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдХреЛрдб рдкрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рд╛ рдЬреЛ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдерд╛ред
рдЙрджрд╛рд╣рд░рдг :
next v9.4.5-canary.24
basePath
/alerts
рдЕрдЧрд▓реЗ рдореЗрдВ .config.js:const basePath = '/alerts';
module.exports = {
basePath: basePath,
env: {
BASE_PATH: basePath,
},
};
public/images/example.png
const ExampleImage = () => (
<img src={`${process.env.BASE_PATH}/images/example.png`} />
);
рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рдХреИрдирд░реА рд╕реНрдерд╛рдкрд┐рдд рдХреА:
npm install [email protected]
next.config.js
const isProd = process.env.NODE_ENV === 'production';
module.exports = {
basePath: isProd ? '/example' : ''
}
рд╕рднреА рдкреГрд╖реНрда рдФрд░ рд▓рд┐рдВрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВ:
http: // localhost : 3000 / рдЙрджрд╛рд╣рд░рдг / рдкреЛрд╕реНрдЯ / рдкреНрд░реА-рд░реЗрдВрдбрд░рд┐рдВрдЧ
http: // localhost : 3000 / рдЙрджрд╛рд╣рд░рдг / рдкреЛрд╕реНрдЯ / ssg-ssr
http: // localhost : 3000 / рдЙрджрд╛рд╣рд░рдг / рдкреЛрд╕реНрдЯ / рдкреНрд░реА-рд░реЗрдВрдбрд░рд┐рдВрдЧ
рд▓реЗрдХрд┐рди рдЪрд┐рддреНрд░, рдлреЗрд╡реАрдХреЙрди рдЖрджрд┐ рдХреА рдореИрдкрд┐рдВрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ:
http: // localhost : 3000 / favicon.ico 404
http: // localhost : 3000 / images / profile.jpg 404
рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛? рдореИрдВрдиреЗ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ?
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
рдЕрдкрдиреЗ рдЕрдВрдд рдХреЗ рд╕рд╛рде-рд╕рд╛рде @kmturley рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдореИрдВ рдирд╣реАрдВ рд╣реВрдВред
@timneutkens , рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП / рдЗрд╕ рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдмреЗрд╕рдкреИрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
const {basePath} = useRouter()
https://nextjs.org/docs/api-reference/next.config.js/cdn-support-with-asset-prefix
Next.js рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рд▓рд┐рдкрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ;
рдЕрдм, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ / рдЬрдирддрд╛ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЙрджрд╛ <img/>
<link/>
...
рдХреНрдпрд╛ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдмреЗрд╕рдкрд╛рде рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
рдЕрдЧрд░ рдиреАрдЪреЗ рдЙрдкрд▓рдмреНрдз рдЬреИрд╕рд╛ рдХреЛрдИ рдШрдЯрдХ рдерд╛, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдмрдЪрдд рдХрд░реЗрдЧрд╛ рдФрд░ рднреНрд░рдо рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛?
<WithinBasePath>
{/* automatically fixes the path with basePath */}
<img src="/logo.png" />
</WithinBasePath>
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣реА рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИред
// src/components/WithinBasePath/index.tsx
import React from "react"
import path from "path"
import { useRouter } from "next/router"
interface Props {}
const WithinBasePath: React.FC<Props> = (props) => {
const { basePath } = useRouter()
const children = [props.children].flatMap((c) => c) as React.ReactElement[]
return (
<>
{children.map((child, key) => {
let newChild = null
switch (child.type) {
case "img":
newChild = React.createElement(child.type, {
...child.props,
src: path.join(basePath, child.props.src),
key,
})
break
case "link":
newChild = React.createElement(child.type, {
...child.props,
href: path.join(basePath, child.props.href),
key,
})
break
default:
newChild = React.createElement(child.type, {
...child.props,
key,
})
}
return newChild
})}
</>
)
}
export default WithinBasePath
// pages/test.tsx
import React from "react"
import WithinBasePath from "@src/components/WithinBasePath"
interface Props {}
const test: React.FC<Props> = (props) => {
return (
<WithinBasePath>
<img src="/123.jpg" />
<link href="/abc.jpg" />
<div>other element</div>
</WithinBasePath>
)
}
export default test
рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП const {basePath} = useRouter()
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реБрдХ рд╣реИ:
рдЕрдорд╛рдиреНрдп рд╣реБрдХ рдХреЙрд▓ рдЪреЗрддрд╛рд╡рдиреА
https://reactjs.org/warnings/invalid-hook-call-warning.html
рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import { withRouter, Router } from 'next/router'
class Example extends Component<{router: Router}, {router: Router}> {
constructor(props) {
super(props)
this.state = {
router: props.router
}
}
render() {
return (
<Layout home>
<Head><title>Example title</title></Head>
<img src={`${this.state.router.basePath}/images/creators.jpg`} />
</Layout>
)
}
}
export default withRouter(Example)
рдпрджрд┐ рдЖрдк рдмреЗрд╕рдкреИрдб рдХреЛ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
const content = this.state.doc.content.replace('/docs', `${this.state.router.basePath}/docs`);
return (
<Layout>
<Container docs={this.state.allDocs}>
<h1>{this.state.doc.title}</h1>
<div
className={markdownStyles['markdown']}
dangerouslySetInnerHTML={{ __html: content }}
/>
</Container>
</Layout>
)
рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдмреЗрд╕рдкреИрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
const {basePath} = useRouter()
рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╣рд╛рд▓рд╛рдВрдХрд┐ css рдпрд╛ scss рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ css рдпрд╛ scss рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдЖрдзрд╛рд░ рдкрде рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЙрдкрд╛рдп рд╣реИ?
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рднреА рдЪрд┐рддреНрд░ рдпрд╛ рддреЛ рдЖрдИрдПрдордЬреА рдЯреИрдЧ, рдЗрдирд▓рд╛рдЗрди рд╕реНрдЯрд╛рдЗрд▓ рдпрд╛ рд╕реНрдЯрд╛рдЗрд▓ рдЯреИрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рдПрдВред рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдЧрд╛ред
@peetjvv рдпрд╣рд╛рдВ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдк- <CSSVariables>
рдореЗрдВ рдШрдЯрдХ _app.tsx
рд╣реИ, рдЬреЛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ inlined injects <style>
рд╕реАрдПрд╕рдПрд╕ рдЪрд░, рдЬрд┐рд╕реЗ рдлрд┐рд░ рдЖрдк рдЕрдкрдиреЗ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рднрд░ рдореЗрдВ рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рдпреБрдХреНрдд рддрддреНрд╡ред
рдЬреИрд╕реЗ <body>
рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЗрдВрдЬреЗрдХреНрд╖рди рдЪрд░ рдкрд░:
<style>
:root {
--asset-url: url("${basePath}/img/asset.png");
}
</style>
рдЙрд╕ рдмреЗрд╕рдкрд╛рде рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ #kmturley рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ withRouter
рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ред
рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдШрдЯрдХ рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
import { withRouter, Router } from "next/router";
import { Component } from "react";
export interface IProps {
router: Router;
}
class CSSVariables extends Component<IProps> {
render() {
const basePath = this.props.router.basePath;
const prefixedPath = (path) => `${basePath}${path}`;
const cssString = (value) => `\"${value}\"`;
const cssURL = (value) => `url(${value})`;
const cssVariable = (key, value) => `--${key}: ${value};`;
const cssVariables = (variables) => Object.entries(variables)
.map((entry) => cssVariable(entry[0], entry[1]))
.join("\n");
const cssRootVariables = (variables) => `:root {
${cssVariables(variables)}
}`;
const variables = {
"asset-url": cssURL(
cssString(prefixedPath("/img/asset.png"))
),
};
return (
<style
dangerouslySetInnerHTML={{
__html: cssRootVariables(variables),
}}
/>
);
}
}
export default withRouter(CSSVariables);
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░рдХреЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред
Next.js рдореЗрд░реА рдЯреАрдо (5 рд▓реЛрдЧ) рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рдореЗрдВ рд╣рдордиреЗ рдЗрди рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ:
рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ Next.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдирдпрд╛ рдФрд░ рдореМрдЬреВрджрд╛) рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЫреЛрдЯрд╛, рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ "рдЕрдкрд╡реЛрдЯ" рдХреЛ рдЖрд╡рд╛рдЬ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдзрд╛рдЧреЗ рдкрд░ on рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐
basePath
рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЛрдбрдореИрдк рдкрд░ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреАрдЖрд░ рднреА рд▓рд┐рдЦрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЖрдк рдереНрд░реЗрдб рдкрд░ рд╡рд╛рдкрд╕ рдкрдврд╝рдХрд░ рджреЗрдЦ рд╕рдХрддреЗ рдереЗредрдпрд╣рд╛рдВ рдкреАрдЖрд░: https://github.com/zeit/next.js/pull/9872 рд╣реИ
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдпреЛрдЧрджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ @vercel.com рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред