Next.jsをサブディレクトリで運用する場合はbasePathを入れるだけで簡単であったが、Nginxの設定につまづいた。
WordPressが起動して、そのサブディレクトリにNextjsをデプロイしようとしていたところ、リダイレクトが繰り返され、リダイレクトエラーで表示ができなかった。nginxのアクセスログ、エラーログを確認してみたが、アクセスログでは確かに何度もアクセスしているようで、エラーログを見ると何も表示されない。つまりエラーは無し...
ウェブページでURLを見てみると、URLの最後のスラッシュ(/)が消えたり付いたりしていた。この現象はGATSBYでも見た覚えがある。
ngxinの設定が違った。最後のスラッシュの関係で出たりでなかったり、
片方どちらかのみスラッシュが入っている
location /hoge/ {
proxy_pass http://localhost:8080;
}
OR
location /hoge {
proxy_pass http://localhost:8080/;
}
両方スラッシュがある。または両方無し。
location /hoge {
proxy_pass http://localhost:8080;
}
location /hoge/ {
proxy_pass http://localhost:8080/;
}
プロキシ設定は前の記事でプロキシ設定をすればよく、 繰り返しになるがNext.jsの場合は以下の様に設定する。
location /hoge {
proxy_pass http://localhost:8080;
}
next.config.jsに一行記入するだけ、
/** @type {import('next').NextConfig} */
const nextConfig = {
basePath: "/hoge",
}
module.exports = nextConfig
パブリックフォルダーの画像等は、このhogeが追加されていなかったので、これは力技で、ただコードにhogeを入れることにした。
apiも同様にhoge
を入れることで解決させた。
<src="demoimg.jpg">等を
<src="hoge/demoimg.jpg">に
const res = await fetch('api/post',{...省略})
const res = await fetch('hoge/api/post',{...省略})
終了と起動についてはssコマンドでポートや、pidを確認してから、起動、終了を行ってください。
# 起動
nohup npm start &
# 終了 ---注意---
pkill "next-router-wor"
next/dist\client\components\static-generation-async-storage.external.js'
windows10,Ubuntu 22.04.3 LT
AlmaLinux release 8.8
nextのバージョンを下げる。
npm uninstall next
npm install [email protected]
エラーが報告されているので後に修正されるであろう...
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください