Саппер рендеринга на стороне сервера (SSR) не работает на Zeit Now v2 - PullRequest
0 голосов
/ 08 февраля 2020

Я взял исходный код https://github.com/beyonk-adventures/now-sapper-demo и просто использовал now для его развертывания в Zeit Now v2.

См. https://test-v2-qa.tomsoderlund.now.sh/blog

Вы видите, что /blog возвращает ошибку 500:

request to http://127.0.0.1:0/blog.json failed, reason: connect ECONNREFUSED 127.0.0.1

Но https://test-v2-qa.tomsoderlund.now.sh/blog.json возвращает действительное JSON, так что-то с тем, как запрашивается URL?

1 Ответ

1 голос
/ 09 февраля 2020

Спасибо @thgh, который помог мне: https://github.com/beyonk-adventures/now-sapper-demo/issues/5#issuecomment -583779955

Для всех, кто столкнулся с такой же проблемой; Я сделал эту вспомогательную функцию:

export default function zeitNowUrl (path, host = '') {
  const baseUrl = (!process.browser && process.env.NOW_REGION)
    ? `https://${host}`
    : ''
  return `${baseUrl}/${path}`
}

... и затем на каждой странице:

<script context="module">
  import zeitNowUrl from '../../lib/zeitNowUrl'

  export function preload({ host, params, query }) {
    return this.fetch(zeitNowUrl('blog.json', host)).then(r => r.json()).then(posts => {
      return { posts }
    })
  }
</script>

Обновление

Это теперь исправлено в now-sapper v0. 39,0.

...