webpack
の上に構築されるlaravel-mix
を使用しています。フォントディレクトリに問題があります。たとえば、font-awesome
パッケージには、すべてのフォントが配置されるscssファイルとフォントディレクトリがあります。
font-awesome:.
├───scss
│ fontawesome.scss
└───webfonts
fa-regular-400.eot
fa-regular-400.svg
fa-regular-400.ttf
fa-regular-400.woff
fa-regular-400.woff2
したがって、このパッケージをresources/assets/sass
ディレクトリに配置します。
resources:.
└───asset
└───sass
│ main.scss
│
└───font-awesome (directory)
main.scss
にはコードが含まれます:
@import 'font-awesome/scss/fontawesome';
webpack.mix.js
に含まれるもの:
mix.sass('resources/assets/sass/main.scss', 'public/css/frontend.css');
すべてのアセットが正常にコンパイルされます。 public
ディレクトリにはcss
およびfont
ディレクトリがあり、このようなすべてのフォントがあります。
public:.
│ index.php
│
├───css
│ frontend.css
│
├───fonts
│ fa-regular-400.eot
│ fa-regular-400.svg
│ fa-regular-400.ttf
│ fa-regular-400.woff
│ fa-regular-400.woff2
しかし、私が欲しいのは、すべてのフォントをpublic/fonts
ディレクトリにコンパイルしたくないです。次の構造としてコンパイルしたいpublic/fonts/vendor/font-awesome
public:.
├───css
│ frontend.css
│
└───fonts
└───vendor
└───font-awesome
fa-regular-400.eot
fa-regular-400.svg
fa-regular-400.ttf
fa-regular-400.woff
fa-regular-400.woff2
webpack.mix.js
ファイルで変更する必要がある変更.
1:最初に明示的なフォルダー構造を作成します:
laravelプロジェクトでこのように。
public/fonts/vendor/font-awesome
すべてのフォントをfont-awesome
パッケージから上記のディレクトリに移動します。
2:$ fa-font-path変数値の変更:
font-awesome
ディレクトリには_variables.scss
というファイルがあり、そのファイル内には$fa-font-path
という名前の変数があり、値をこのような値に変更します。
$fa-font-path: "/fonts/vendor/font-awesome" !default;
機能するアセットをコンパイルします。
Laravel-mixを使用して、public/fonts
からpublic/assets/fonts
ディレクトリ、このコードをwebpack.mix.js
let mix = require('laravel-mix');
mix.config.fileLoaderDirs.fonts = 'assets/fonts';
このように直接コピーしてみてください:
mix.copyDirectory('assets/font-awesome/webfonts', 'public/fonts');
または、ファイルを1つずつコピーできます。
mix.copy('assets/font-awesome/webfonts/example.ttf', 'public/fonts/example.ttf');