質問: nuxt.jsのassetsフォルダについて質問です。 簡単なwebサイトの制作しています。 assets/img ここに画像を入れてpagesのvueファイル内でと書き表示されることは確認できたのですが、jsファイルはどのように扱うことが出来るのでしょうか? 例えば、全ページに適用したい処理が書いているcommon.jsを作成し、 assets/js/common.js と格納した場合、このファイルはどこからどのようにして読み込めるのでしょうか? (最終的にはyarn generateして、dist内の静的ファイルをftpサーバーにあげる予定です。)
回答: `head`要素または`body`要素(の最後)に`script`要素を挿入したい場合、`nuxt.config.js`の`head`に設定します。(引用) ``` module.exports = { head: { script: [ { src: xxx, type: 'text/javascript', body: true } ] } } ``` `xxx`はファイルパスです。 `head`という設定の名前がややこしいですが、Nuxt.jsが`vue-meta`というライブラリを利用していて、そのライブラリで使える設定が使えるということです。 そちらのライブラリも調べてみてください。 追記(2018/11/18) 質問の意図をうまく汲み取れていない部分がありましたので、追記します。 質問の「全ページに適用したい処理が書いているcommon.js」については、以下の対応が考えられます。 「Vueアプリケーションが実行される前に何かしたい」場合は、 `/plugins/common.js`を作成し`nuxt.config.js`の`plugins`にパスを記述してください(参考)。 「Vueアプリケーションでルーティングが行われるタイミングで何かしたい」場合は、 `/middleware/common.js`を作成して、コンポーネントのファイルに設定してください(参考1、参考2)。 もしくはモジュールが求めているものかもしれませんが、 長くなるので説明は省略します。 `assets`については、以下の説明をもって最初の回答を訂正いたします。 `/assets`ディレクトリにあるものは、ビルドする際にwebpackで操作されることを意図しています。 また、`/assets`ディレクトリには画像やCSSをいれておくのが、本来Nuxtが意図した使い方です。 webpackで操作されることを意図しないファイルは`/static`ディレクトリに配置してください。 `/static/xxx`は、ビルド時に`/xxx`として、そのままコピーされます。 faviconなどはビルドの必要が無いのでここが自然です。 `assets`と`static`についてはこちらを参照してください。 okpkさんのおっしゃる通り、`nuxt.config.js`の`head`プロパティには、CDNで配布されているライブラリなどをwebpackのビルドファイルに含まずにリンクする場合に有用です。