首页 > 解决方案 > Sapper 服务器端渲染 (SSR) 在 Zeit Now v2 上不起作用

问题描述

我已经从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 的方式有关吗?

标签: sveltevercelsapper

解决方案


感谢@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-sapperv0.39.0 中修复。


推荐阅读