Ownedmedia ウェブ制作に役立つコンテンツを発信中!

Nuxt.js 2019.09.20

Nuxt.jsでサブディレクトリにデプロイするときの対応

Tags: ,,,

Nuxt.jsで作成したアプリケーションを本番で運用するときに、サブディレクトリ配下に置きたいこともあるかと思います。その場合、アップロードするファイルなどをそのままサブディレクトリに配置するだけではうまく機能しません。このような時はルーティングの設定が必要になります。

 

過去記事で「Vue.jsでサブディレクトリ内へデプロイするときの対応」ではVue-CLIで作成するときの方法をまとめていましたが、Nuxt.jsでも同じように設定していきます。プロジェクト内にある「nuxt.config.js」内で、下記のように「routerプロパティ」の値にサブディレクトリを設定します。

【nuxt.config.js】※一部抜粋

export default {
 .......
 router: {
  base: '/DIRECTORY_NAME/'
 },
 .......
}

 

さらに、公式ドキュメントによると、routerプロパティでbaseの値を設定している場合には、headタグ内で下記のような記述が必要とのことです。

<head>
 .......
 <base href="{{ router.base }}" />
 .......
</head>

 

そこで、同じく「nuxt.config.js」内の「headプロパティ」に上記のタグが出力されるよう次のように設定を追加します。

【nuxt.config.js】※一部抜粋

export default {
 .......
 router: {
  base: '/DIRECTORY_NAME/'
 },
 head: {
  .......
  base: {
   href: 'router.base'
  }
  .......
 }
}

 

あとは、デプロイ用にビルドされたファイル群を指定したサブディレクトリにアップロードします。これでうまくルーティングされるようになりました。また、imgタグなどのsrcの値もルートディレクトリからの相対パスで問題なく表示されるようになりました。

【Vue】※一部抜粋

<template>
 <div>
  <img src="img/example.jpg" alt="image" />
 </div>
</template>

 

Nuxt.jsで作成したアプリケーションをサブディレクトリ配下で運用したい場合は覚えておきたいですね。

 

(参考にさせて頂いたサイト)
Nuxt.js router プロパティ

この記事を書いた人

オガワ シンヤ

合同会社デザインサプライ代表兼CEO / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?