Next.js: рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз: рдмрд╕рдкрд╛рде рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдЕрдЧре░ 2018  ┬╖  73рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vercel/next.js

рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓реЗрдЦ рдорд╛рдВрдЧрдирд╛

рдХреНрдпрд╛ рдЖрдкрдХреА рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рдХреГрдкрдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдмрддрд╛рдПрдВред

рдорд▓реНрдЯреА рдЬрд╝реЛрди рдПрдХ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдбреЛрдореЗрди рдкрд░ рдХрдИ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдРрдк рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмреЗрд╕рдкреЗрде рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЕрдЧрд▓реЗ.рдЬреЗрдПрд╕ рдХреЗ рд╕рднреА рд╣рд┐рд╕реНрд╕реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪреВрдБрдХрд┐ рд╣рдо рдЕрднреА рдРрдкреНрд╕ рдХреЛ рдирд╛рдо рд╕реНрдерд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдРрдк рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдирд╛рдо рд╣реЛрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рдореИрдВ 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'
}

screen shot 2018-08-21 at 10 47 08

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╣рдореЗрдВ рдЗрд╕реЗ 2 рдЪрд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

module.exports = {
  assetPrefix: NOW_URL ? `https://${alias}` : 'http://localhost:4000',
  basepath: '/account'
}

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

story needs investigation

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрджреНрдпрддрди ... рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЗрд╕ рд╕рдордп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдЕрдм рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж, рдореИрдВ рдПрдХ рдирдП рдРрдк рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдореИрдВрдиреЗ рдЬреЛ рд╡рд░реНрдХрдЖрд░реНрдбрд░ рдХрд┐рдП рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ... 'рдкреНрд░реЛрдбрдХреНрд╢рди-рд░реЗрдбреА' рд░рд┐рдПрдХреНрд╢рди fw рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реЗ рдЪрд┐рдВрддрд╛рдЬрдирдХред рдмреЗрд╕рдкреЗрдереНрд╕ рдПрдХ рд╡реЗрдирд┐рд▓рд╛ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдХрд░рдХреЗ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред

Next.js рдореЗрд░реА рдЯреАрдо (5 рд▓реЛрдЧ) рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рдореЗрдВ рд╣рдордиреЗ рдЗрди рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ:

рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ Next.js рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдирдпрд╛ рдФрд░ рдореМрдЬреВрджрд╛) рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдЫреЛрдЯрд╛, рддреЗрдЬ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ "рдЕрдкрд╡реЛрдЯ" рдХреЛ рдЖрд╡рд╛рдЬ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдзрд╛рдЧреЗ рдкрд░ on рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ basePath рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЛрдбрдореИрдк рдкрд░ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреАрдЖрд░ рднреА рд▓рд┐рдЦрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЖрдк рдереНрд░реЗрдб рдкрд░ рд╡рд╛рдкрд╕ рдкрдврд╝рдХрд░ рджреЗрдЦ рд╕рдХрддреЗ рдереЗред

рдпрд╣рд╛рдВ рдкреАрдЖрд░: https://github.com/zeit/next.js/pull/9872 рд╣реИ

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдпреЛрдЧрджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ @vercel.com рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред

рд╕рднреА 73 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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 , рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдПрдХ-рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреНрд╡реАрдк рдкрд░ рджреНрд╡реАрдк рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рддреИрдирд╛рддреА рдХреА рдЪрд┐рдВрддрд╛ рдмрдирд╛рдо рдЖрд╡реЗрджрди рдХреА рдЪрд┐рдВрддрд╛ рд╣реИред

  1. рддреИрдирд╛рддреА рдХреА рдЪрд┐рдВрддрд╛ рдмрдирд╛рдо рдЖрд╡реЗрджрди рдХреА рдЪрд┐рдВрддрд╛ - рдЖрд╡реЗрджрди рдХрд╛ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЖрдиреЗ рд╡рд╛рд▓реЗ http рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ - рдЗрд╕рдиреЗ рдЙрди рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
    рдЬрдм рдЗрд╕реЗ рдХрд╣реАрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЛрдореЗрди, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рдВ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдпрд╛ рдЕрдиреНрдп рдорд╛рдзреНрдпрдореЛрдВ рд╕реЗ рдРрдк рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

  2. рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХреНрд░реЙрд╕ рд▓рд┐рдВрдХ - рджреНрд╡реАрдкреЛрдВ рдХреА рднрд╛рд╡рдирд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рддреИрдирд╛рддреА рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рджреНрд╡реАрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреНрдЮрд╛рди рд▓реАрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
    рдЗрд╕рд▓рд┐рдП рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ (рдЕрдЧрд▓реА рджреБрдирд┐рдпрд╛ рдореЗрдВ _and рдпрд╣ рдХрд╕реНрдЯрдо <IslandALink> рддрд░рд╣ рдХреЗ рдШрдЯрдХреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ) рдорд╛рд░реНрдЧ_)ред
    рдЕрдм рддрдХ рдпрд╣ рд╕рднреА рд╕реАрдзреЗ рдЖрдЧреЗ рд╣реИ - рд╕рднреА рджреНрд╡реАрдк рдПрдХ рд╣реА рдбреЛрдореЗрди рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдкреВрд░реНрдг рдкрде ( /path1 , path2 , рдЗрддреНрдпрд╛рджрд┐) рдХрд╛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рджреВрд╕рд░рд╛ рджреНрд╡реАрдк рдЙрди рд░рд╛рд╕реНрддреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡реАрдк рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрдд (рдЬреЛ рд╡реЗрдм рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ) рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :)

рдЬрдм рд╣рдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреЗрд╕рдкрд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ - рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рджреНрд╡реАрдк рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рддрдп рдХрд░рдирд╛) рдХрд┐ рд╡рд╣ рд╕реНрд╡рдпрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЖрдзрд╛рд░ рд╣реИ? рдлрд┐рд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИ? рдпрд╛ рджреНрд╡реАрдк рдП рдХреЛ рддреИрдирд╛рддреА рдкрде рдХрд╛ рдЕрдЬреНрдЮреЗрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдлрд┐рд░ рджреНрд╡реАрдк рдмреА рдХреЛ рддреИрдирд╛рдд рджреНрд╡реАрдк рдП рдХреИрд╕реЗ рдорд┐рд▓реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рджреНрд╡реАрдк рдП рдЦреБрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирддрд╛ рд╣реИ? рдпрд╛ рдЖрдкрдХреЛ рд╕рднреА рддреИрдирд╛рдд рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреНрдп рджреНрд╡реАрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╕рдкреИрде рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреА рд╣реЛрдЧреА? рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рдЖрдзреБрдирд┐рдХ рддрд░реАрдХреЗ рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдирдП рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рднреА рджреНрд╡реАрдкреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред

рдпрд╛ рдЖрдкрдиреЗ рдХрд╣рд╛рдиреА рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХреА?

рдзрдиреНрдпрд╡рд╛рджред

^ рдпрд╣ рд╕реБрдмрд╣ рдХреА рдХреЙрдлреА рд╕реЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред :)

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рд▓реЛрдЧреЛрдВ рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реЗ рдореБрджреНрджреЗ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рд╛ред

@timneutkens рд╣рд╛рдБ assetPrefix рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ basePath , рдареАрдХ рдпрд╣реА рд╣рдордиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИред рдЬрдм рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдореБрдЭреЗ рдХрд┐рддрдиреА рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓рдиреА рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рджреВрд╕рд░рд╛ рд░рд╛рд╕реНрддрд╛ рд╕рд╛рдл рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдмреИрдХ рдХрд░реВрдВрдЧрд╛ред рдЪрд▓реЛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд░рдЦреЗрдВ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдмрд╕ рдЬреЛрд░-рдЬреЛрд░ рд╕реЗ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред

рдЖрдкрдХреЗ рд╡рд┐рд╕реНрддреГрдд рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП @alexindigo Thx рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ your

рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдореБрдЭреЗ рдпрд╣рд╛рдВ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

  1. рдореИрдВ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдбреЛрдореЗрди рдФрд░ рди рд╣реА рдЙрдк рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред (рдбреЛрдореЗрди рдкреНрд░рддрд┐рдмрдВрдз рдФрд░ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб SSL рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд╣реАрдВ)
  2. рдХрд┐рд╕реА рдПрдХрд▓ рдбреЛрдореЗрди рдкрд░ 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 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐, рд╢рд╛рдпрдж рдпрд╣ @now/next рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ ( рдЕрджреНрдпрддрди рдХрд░реЗрдВ : рдпрд╣ https://github.com/zeit/next.js/pull/8426#issuecomment-522801831) рдХреЗ рдХрд╛рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ, рд╣рдо /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 рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдФрд░ рдЕрдкрдбреЗрдЯ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рд╣реЛрдВрдЧреЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ ...

  1. рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдЙрджреНрдпрдо рд╣реЛрдЧрд╛ (рд╕рдВрдкрд░реНрдХ рдЙрджреНрдпрдо рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕рдВрджрд░реНрдн рдХреБрдЫ рдЬрд▓рди рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ)?

  2. рдпрд╣ рд░реЛрдбрдореИрдк рдкрд░ рд▓рдЧрддрд╛ рд╣реИ, рдкреАрдЖрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛; рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдЧрд░ рдЕрдЧрд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣ рдЗрд╕ рдлреАрдЪрд░ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд┐рдХреНрд░реА рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдордирдорд╛рдиреА рдХреАрдорддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреА?

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рд╕реЗрдЯрдЕрдкреЛрдВ рдХреЛ рднреА рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд 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 рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдФрд░ рдЕрдкрдбреЗрдЯ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рджрдпрд╛рд▓реБ рд╣реЛрдВрдЧреЗред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ ...

  1. рдХреНрдпрд╛ рдпрд╣ рдХреЗрд╡рд▓ рдЙрджреНрдпрдо рд╣реЛрдЧрд╛ (рд╕рдВрдкрд░реНрдХ рдЙрджреНрдпрдо рдмрд┐рдХреНрд░реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕рдВрджрд░реНрдн рдХреБрдЫ рдЬрд▓рди рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ)?
  2. рдпрд╣ рд░реЛрдбрдореИрдк рдкрд░ рд▓рдЧрддрд╛ рд╣реИ, рдкреАрдЖрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛; рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдЧрд░ рдЕрдЧрд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рдХреА рддрд░рд╣ рдЗрд╕ рдлреАрдЪрд░ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд┐рдХреНрд░реА рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдордирдорд╛рдиреА рдХреАрдорддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреА?

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд▓реЛрдЧ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рд╕реЗрдЯрдЕрдкреЛрдВ рдХреЛ рднреА рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рдорд░реНрдкрд┐рдд basePath рдкреНрд░рддрд┐ рд╕реЗрд╡рд╛ рджреЗрдВред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЕрдм рдЕрдЧрд▓рд╛ рдкрд░ рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдФрд░ рдкреВрд░реНрдг рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЕрдЧрд▓реА рдмрд╛рд░ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рдирд┐рд╡реЗрд╢ рд╣реЛрдЧрд╛ред

рдЕрдкрдиреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП fwd рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

@ рдкреЗ-рдПрд╕ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдореЗрд░реА рдкреЛрд╕реНрдЯ рдХреЛ рдЧрд▓рдд рд╕рдордЭ рд░рд╣реЗ рд╣реИрдВред

рдЕрдм рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдИ "рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг" рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХрдИ рдореМрдХреЛрдВ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ рдмрд╛рд╣рд░реА рдХрдВрдкрдирд┐рдпрд╛рдВ рдХрдо рд╕рдордп рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд░рд╛рдорд░реНрд╢ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдВрдЪреА рдереАрдВред рдЯреНрдпреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ рдИрдЬреА рдЬреЛрди рд╕рдорд░реНрдерди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рдФрд░ рд░реЛрдбрдореИрдк рдкрд░ рд╣реИред рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╡реЗ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╣реИрдВ, рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ Next.js. рдХрд╛ рдХреЛрдИ рдЙрджреНрдпрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ рд░реЛрдбрдореИрдк рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдЪреНрдЪ-рдкреНрд░рднрд╛рд╡ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдХреА рдХрдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ @vercel.com рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ / Next.js. рдХреЗ рд▓рд┐рдП рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рдорд░реНрдерди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрдкрдХреА рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдмрдврд╝рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП @timneutkens tx! рдлрд┐рд░, рд╣рдо рд╕рдм рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ :)
рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЛ!

рдмрд╕рдкрд╛рде рд╕рдорд░реНрдерди next@canary рдЕрднреА рдмрд╛рд╣рд░ рд╣реИ, рдпрд╣ рдЕрдм рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╕реНрдерд┐рд░ рдЪреИрдирд▓ рдкрд░ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЧрдИ рд╣реИ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ HTML <base> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ?

рдмрд╕рдкрд╛рде рд╕рдорд░реНрдерди next@canary рдЕрднреА рдмрд╛рд╣рд░ рд╣реИ, рдпрд╣ рдЕрдм рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╕реНрдерд┐рд░ рдЪреИрдирд▓ рдкрд░ рд╣реЛрдЧрд╛ред

@timneutkens , рдЗрд╕ рдЬреЛрдбрд╝ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧреИрд░-рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдмреЗрд╕рдкреИрде рд╕рдорд░реНрдерди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдореИрдВ рдмреЗрд╕рдкрд╛рдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд) рдЕрдкреЗрдХреНрд╖рд┐рдд url рдХреЛ рджреА рдЬрд╛рддреА рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЬрдм рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ src рдореЗрдВ рдЖрдзрд╛рд░ рдкрде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рдкрде рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╕рдкреИрде рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ рд╣реИ? рдореИрдВрдиреЗ рдПрд╕реЗрдЯрдкреНрд░рд┐рдлрд╝рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдХреЛрдб рдкрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рд╛ рдЬреЛ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рдерд╛ред

рдЙрджрд╛рд╣рд░рдг :

  1. next v9.4.5-canary.24
  2. basePath /alerts рдЕрдЧрд▓реЗ рдореЗрдВ .config.js:
const basePath = '/alerts';
module.exports = {
  basePath: basePath,
  env: {
    BASE_PATH: basePath,
  },
};
  1. рд╕рдВрдкрддреНрддрд┐ public/images/example.png
  2. рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдореЗрдВ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ:
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);
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

formula349 picture formula349  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

swrdfish picture swrdfish  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

havefive picture havefive  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

YarivGilad picture YarivGilad  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ