Nuxt.jsとTypeScriptで作成しているサイトにfaviconを設定する流れについて解説致します。
今回はfaviconを作成してサイトに追加していきます。 箸休め的な記事です。
faviconの作り方に関してはこちらに記載しています。 5分でサクッとfaviconを作成する手順
faviconは静的で更新させることは滅多にないのでstatic
へ追加します。
次にnuxt.config.js
に設定を追記する
static
ディレクトリ名はパスには含めいない。
ファイル名をいじる際はこちらのhref
のアイコン名を変更する。
head: {
link: [
{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" }
]
},
上記の対応のうえ実際にfaviconを表示させるとこんな感じになります。
favionは2文字までならギリギリ読めますね。 表示できたのでfaviconの設定は完了です!
今回追加する画像は静的なものとして使用したいのでstatic
に追加します。
page側で画像を呼び出します。
static
の画像を呼び出す際は/static
を記載せずに画像パスを記入すればOKです。
<template>
<div>
<h2>TOP PAGE</h2>
<img src="/img/sample.jpg" />
</div>
</template>
こうすることで画像を表示できました。
vueを学んだ後にNuxt.jsを学び出して疑問に感じたこと。 assetsとstatic、どちらに画像を追加すれば良いのだろうという点。 公式ドキュメントに改めて目を通し学びました。
assetsにはwebpackしたいアセットを置きます
他にも動的に生成する画像はsvgファイルもassets
に配置する。
よくあるA画像とB画像を合成してC画像を生成する、などを行う場合もassetsに置いたほうが良さそう。
画像の編集や生成は個人的に好きな処理なので別記事で紹介しようと思います。
webpackのbuildに画像の容量圧縮のフローなどを追加しておくと手間が省けてヒューマンエラーで圧縮忘れなども起こらなくなるので安心です。 画像の圧縮に関してはこちらに記事を書きました。
webpackしないアセットを配置する
実際にassets
ディレクトリの画像とstatic
ディレクトリの画像を表示するとこのような記述になります。
下記のコードのようにassets
ディレクトリの画像を呼び出す際は~/assets/
と記載しstatic
のように省略することはできません。
<template>
<div>
<h2>TOP PAGE</h2>
<!-- static -->
<img src="/img/sample.jpg" />
<!-- assets パスの『~』は『@』でもOK -->
<img src="~/assets/img/sample.jpg" />
</div>
</template>
Q.画像はassetsとstaticのどちらに配置すべきかわからない A.assetsはwebpackする画像を置き、staticにはwebpackしたくない画像を置く
nuxt.jsで開発する中でassetsとstaticの使い分けは重要だと思うので今回の学習を通して学ぶことができました。
今回自分が作成しようとしているのは静的なサイトですので画像を配置するのはstatic
ディレクトリになっていきそうです。
完