NextJS '/' to index.js ничего не загружает - PullRequest
0 голосов
/ 09 октября 2018

Я новичок в Next.js. У меня проблема с тем, что http://localhost:3000 не работает при использовании маршрутизации на стороне клиента, но загружается при обновлении.

Мой Header.js файл, которыйпоказывает навигацию

import Link from 'next/link'
const Header = () => (
    <div>
        <Link href='/'>
          <a style={linkStyle}>Home</a>
        </Link>

        <Link href='/about'>
          <a style={linkStyle}>About</a>
        </Link>

        <Link href='/listing'>
            <a style={linkStyle}>Search</a>
        </Link>

    </div>
)

export default Header

, затем на server.js У меня есть почти коды по умолчанию из Next.js

const express = require('express')
const next = require('next')

const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

app.prepare().then(() => {
  const server = express()

  server.get('/listing/:id', (req,res) => {
    const actualPage = '/listing'
    const queryParams = {
      id: req.params.id
    }
    app.render(req, res, actualPage, queryParams)

  })

  server.get('*', (req,res) => {
    return handle(req, res)
  })

  server.listen(3000, (err) => {
    if (err)
      throw err
    console.log('> Ready on http://localhost:3000')
  })
}).catch((ex) => {
  console.error(ex.stack)
  process.exit(1)
})

my /about и /listingстраница работает, и если я использую /nonexistance-url, она будет return 404.Однако я не могу ссылаться на стороне клиента на /

1 Ответ

0 голосов
/ 09 октября 2018

По-видимому, это ошибка с next-css

const withCSS = require('@zeit/next-css')
module.exports = withCSS({/* my next config */})

Эти 2 темы говорят об этом, и, по-видимому, это трудно исправить, в случае, если кто-то случайно попадет в эту же ошибку.

https://github.com/zeit/next.js/issues/5291

https://spectrum.chat/thread/2183fc55-236d-42cb-92b9-3ab10acc6303

Временное решение, предложенное выше, которое работает для меня.

Создать пустой файл CSSи импортируйте его в свой _app.js

...