Как добавить шрифт в проект Vue.js

У меня есть проект с Laravel и Vue.js, и я использую scss. Я хочу добавить новый шрифт в свой проект и не могу этого сделать. Создаю файл fonts.scss, создаю переменную со шрифтом

@font-face {
  font-family: "Proxima Nova Bold";
  src: url(/Proxima-Nova-Bold.otf);
}

$proxima-nova-bold: 'Proxima Nova Bold', sans-serif;

А у меня ошибка консоли GET http://local.{my-domain}/Proxima-Nova-Bold.otf net::ERR_ABORTED

Вот как я импортирую файл scss в компонент Vue

@import '../../../fonts/fonts.scss';

Вот мой микс laravel

let mix = require('laravel-mix');

mix.copy('resources/assets/images', 'public/images', false)
    .js('resources/assets/js/app.js', 'public/js')
    .sass('resources/assets/sass/app.scss', 'public/css')

Где я ошибся? Или подскажите как правильно добавлять шрифты?

Вы сказали ему, как загрузить начертание шрифта, и дали ему путь. Если этот файл не существует на public/Proxima-Nova-Bold.otf, клиент не может запросить его. Убедитесь, что это так.

Ohgodwhy 25.07.2018 18:54

Да, ты прав. Но как я могу работать только на ресурсах, а не на публичных? может мне стоит написать какое-нибудь правило для webpack?

Yaroslav Saenko 25.07.2018 19:27

Ага. Для этого вам следует использовать плагин file-loader.

Ohgodwhy 25.07.2018 19:29

Какова ваша точная настройка сборки для вашего интерфейса? смесь laravel? vue-cli? простой веб-пакет? На первый взгляд, я не вижу причин использовать здесь абсолютный путь в URL-адресе. Используйте относительный путь, и если веб-пакет настроен правильно, он правильно обработает разрешение и объединение шрифта.

Frnak 25.07.2018 20:44

@FrankProvost Я использую смесь laravel. Добавьте фрагмент кода к вопросу

Yaroslav Saenko 25.07.2018 21:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
8
5
19 680
2

Ответы 2

Возможно, вам потребуется добавить такую ​​строку в свой файл микса:

.copy('resources/fonts', 'public/fonts')

Этого не требуется при использовании laravel-mix

Frnak 26.07.2018 08:31

Этот метод импортирует только файл scss, но не шрифты. Как я мог импортировать файлы шрифтов?

Yaroslav Saenko 26.07.2018 11:31

Основываясь на этой проблеме в миксе laravel, github https://github.com/JeffreyWay/laravel-mix/issues/1172 laravel mix будет автоматически копировать шрифты при правильном обращении к ним.

Поэтому я предлагаю использовать относительный путь при ссылке на шрифт. Это должно фактически вызвать микс laravel для создания папки "шрифты" в вашей "общедоступной" папке.

@font-face {
  font-family: "Proxima Nova Bold";
  src: url('./../fonts/Proxima-Nova-Bold.otf');
}

это вызывает ошибку при сборке, единственный способ запустить yarn dev - только так @ font-face {font-family: "Proxima Nova Bold"; src: url (/Proxima-Nova-Bold.otf); }

Yaroslav Saenko 26.07.2018 11:34

Другие вопросы по теме