nyanchu
にゃんちゅう
ABOUT
特定保健指導
フリーランス
料理・栄養
妊娠・子育て
コスメ
雑記
ブログ運営

Next/exportで編集可能なHTMLは作れないけど、FTPでも納品できる

2021-07-241826

FTPでHTML/CSS/JSを納品する案件にReact/Nextjsを使った結果、少し問題になりました。

Next.jsの Static HTML Export とは

サーバーがなくてもページを描画してくれる機能です。とっても低コストで便利。 そのおかげで、このブログもお世話になっているVercelやNetlifyでのホスティングが広まっているわけですね。

使い方は単純で、buildコマンドにexportを追加するだけ。 exportは最新のbuildがないと動かないため、こういった書き方に。

// package.json
"scripts": {
"build": "next build && next export"
}

実行後、 out ディレクトリが生成され、HTML/CSS/JSが格納されます。

outを納品するために3つのオプションを把握

exportPathMap によるURLの指定が必要です。

②HTML内の画像やCSSを絶対パスで指定する場合、配置先のURLを指定する必要があります。 そんな時は assetPrefix を使い、build時のURLを指定できます。 同様のURLをHTML内部でも使い回すために、envで指定しておくと便利です。

③また、URL末尾にスラッシュを強制したい場面もあります。 そんな時は、 trailingSlash オプションが必要になります。

詳細👉 nextjs日本語翻訳exportPathMap, trailingSlash

以下にコード例をまとめました。

// next.config.js
const prodUrl = 'https://google.com' // 配置先のURLを記載する
const localUrl = 'http://localhost:8080/' // 作業時はlocalにしておく
const baseUrl = prodUrl
module.exports = {
env: {
baseUrl: baseUrl, // processで使えるように指定
},
assetPrefix: baseUrl, // vercelで閲覧する際には不要
trailingSlash: true, // スラッシュ強制
exportPathMap: async function (defaultPathMap, { dev, dir, outDir, distDir, buildId }) {
return {
'/': { page: '/' },
'/about/': { page: '/about' }, // スラッシュ強制したいのでpathにもスラッシュ入れる
}
},
}
// pages/index.js
const base = process.env.baseUrl
~~
<a href={base} className="logo">
~~

注意!Next/Exportで生成されたoutは編集不可

生成されたoutディレクトリを、そのままSFTPの案件で納品しましたが問題発生。 納品したoutディレクトリのHTMLテキストを編集しても反映されません。 SFTPやFTP接続って、エンジニア以外の人がHTML触って文言編集したりしましたよね。 それができません。

具体的に言うと、HTMLファイルにはテキストが置かれてますから、当然に編集可能に見えます。 しかし、編集しても反映されません。 なぜなら、outディレクトリに一緒に生成され圧縮された読解不能なJSが、リライトしているからです。

なので、編集が必要あれば、 元ファイルを編集してbuildする必要があります。

この記事をシェアする

」のおすすめ記事も
読んでいってね!

もっと簡単にできないか『エフォートレス思考』まとめ

2022-02-13おまめ

【アカウント作成から解説】Figmaにコメント欲しいとデザイナーに言われたら

2021-09-18おまめ

TOKYO2020オリンピック聖火台にこめられた想い

2021-07-24おまめ

Next/exportで編集可能なHTMLは作れないけど、FTPでも納品できる

2021-07-24おまめ

アマプラおすすめ映画『蜜蜂と遠雷』あなたは美しき世界に気付けるか

2021-07-12おまめ

サムネやWEBデザインに使える!メッシュグラデーションまとめ

2021-07-10おまめ

記事書く自分になるには?セルフイメージでコンフォートゾーンに「戻る力」を使う

2021-06-21おまめ

人の弱さと強さに気づける存在でありたい時、きっと思い出す心のこと

2021-04-03おまめ

【ネタバレ】シン・エヴァンゲリオンお疲れ様でした。補完された僕ら。

2021-03-21おまめ

FigmaでSVGを書き出してreact/typescriptでサクっと扱うSVGR

2021-02-14おまめ

生きづらい世の中を生きぬくために。HSP・ADHD・占いで自分を知り人生を取り戻していく。

2020-12-31おまめ

Vercel + Contentful「Resource is limited」でデプロイできなくなった

2020-12-30おまめ

TENETは逆行ではなくメッセージを見よ【ネタバレ注意】

2020-12-27おまめ

年内にもう一度読みたい!PM向けオススメ記事7選+α

2020-12-27おまめ

コロナで増えたオンラインライブをテレビに映す2方法

2020-11-19おまめ

初心者がReact/Next.js + Vercelでブログ作るまで[1]

2020-11-14おまめ

仏教語みたいな座右の銘が好き

2020-07-11おまめ
おまめ
おまめ
夫。個人開発者・ブロガー・デザイナー。夫婦でサイドFIRE目指してます。
私の楽天ルームはこちらから
Youtubeチャンネル始めました!