質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%

Q&A

解決済

1回答

641閲覧

Next.js 13 で出力した静的HTMLで外部CSSやJSのリンクに "/" が入ってしまうのを除去したい。

Mitsu

総合スコア9

0グッド

0クリップ

投稿2023/10/13 13:49

実現したいこと

Next.js 13 の npm run build コマンドで静的HTMLを書き出した際、外部CSSやJSのリンクパスの先頭に "/" が入ってしまうのを削除したいです。

(例)
このように書き出されてしまうのを、

html

1<link rel="stylesheet" href="/_next/static/css/746c22123a672a83.css" /> 2<link rel="preload" href="/_next/static/chunks/webpack-12345.js" />

このようにすることが目的です。

html

1<link rel="stylesheet" href="_next/static/css/746c22123a672a83.css" /> 2<link rel="preload" href="_next/static/chunks/webpack-12345.js" />

前提

Next.js 13 でWebサイトを制作しており、静的HTMLを出力して最終的に AWS の S3 で公開することが目的です。

そこで npm run build コマンドで静的HTMLを書き出したのですが、前述のように link href="" のファイルパスの先頭に "/" が入ってしまうため、外部CSSやJSが読み込まれない状態で書き出されてしまいます。

HTMLファイルを手動で編集して、先頭の "/" を削除すれば解決するのですが、このような手動対応でなく、npm run build コマンドでの書き出し時点でファイルパス先頭の "/" を除去したいと考えています。

試したこと

Next.js のドキュメントやブログ等を調べ、Next.js プロジェクトの設定ファイルを以下のように設定しましたが解決できません。

next.cofig.js の記述

javascript

1const nextConfig = { 2 output: 'export', 3 assetPrefix: '', 4 basePath: '', 5 reactStrictMode: true, 6 trailingSlash: true, 7 }

package.json の記述

javascript

1 "scripts": { 2 "dev": "next dev", 3 "build": "next build", 4 "start": "next start", 5 "lint": "next lint" 6 },

初歩的な質問で恐縮ですが、もし知見をお持ちの方がいらっしゃいましたら、お知恵をお借りできますと幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すみません、自己解決しました。
S3 の公開バケットにアップロードする際、サブディレクトリにアップロードしていたためうまく表示されませんでしたが、公開バケットのルートにアップロードしたら正常に表示できました。

投稿2023/10/13 14:32

Mitsu

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問