С less v2.7.3 (используя webpack v3.1.0 и less-loader v4.1.0) я мог импортировать удаленные шрифты, как это, в мой файл main.less:
<strong i="6">@import</strong> url('https://fonts.googleapis.com/css?family=Nunito');
С меньшим количеством v3.0.1, использующим ту же конфигурацию и зависимости, теперь я получаю эту ошибку только при попытке сборки:
Message:
./node_modules/css-loader??ref--1-2!./node_modules/postcss-loader/lib??ref--1-3!./node_modules/less-loader/dist/cjs.js??ref--1-4!./src/css/main.less
Module build failed:
*/
<strong i="10">@import</strong> url('https://fonts.googleapis.com/css?family=Nunito');
^
Can't resolve './https://fonts.googleapis.com/css?family=Nunito' in 'C:\Projekte\mine\homepage\src\css'
in C:\Projekte\mine\homepage\src\css\main.less (line 6, column 0)
Я думаю, это может быть связано с тем, что Less больше не переключается автоматически на импорт "css" (с сохранением оператора @import
) только потому, что он находит строку "css" где-то в URL-адресе.
Попробуйте <strong i="7">@import</strong> (css) url('https://fonts.googleapis.com/css?family=Nunito');
Замечательный @ matthew-dean, который действительно помог. Большое спасибо!
@ matthew-dean Есть ли способ указать компилятору использовать https по умолчанию при разрешении URL-адресов из импорта? например, когда я использую <strong i="5">@import</strong> url(//fonts.googleapis.com/css?family=Open+Sans:400,700);
, вывод будет
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(http://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0e.ttf) format('truetype');
}
Когда я помещаю это на страницу, загружаемую через HTTPS, я получаю сообщение об ошибке «смешанное содержимое», а HTTP-запросы блокируются браузером. Итак, теперь мне нужно обновить весь импорт, чтобы использовать (css)
или https://...
, так что просто интересно, могу ли я сделать это с помощью параметра конфигурации?
так что просто интересно, могу ли я сделать это с помощью параметра конфигурации?
Нет. Более того, сама идея импорта fonts.googleapis.com
в скомпилированный CSS опасна, потому что fonts.googleapis.com
обнюхивает используемый браузер (очевидно, Less в node
будет сообщать о себе как Chrome / Chromium ) и может возвращать разные результаты в зависимости от этого (пока я не слышал о каких-либо проблемах в этом отношении, но он может сломаться в любой момент).
@ dmitriy-drenkalyuk Почему бы просто не написать:
<strong i="6">@import</strong> url(https://fonts.googleapis.com/css?family=Open+Sans:400,700);
?
@ matthew-dean Это то, что я в конечном итоге сделал, просто искал возможность сделать это через конфигурацию, чтобы нам не нужно было искать и обновлять все места, где мы используем такой импорт.
Самый полезный комментарий
Я думаю, это может быть связано с тем, что Less больше не переключается автоматически на импорт "css" (с сохранением оператора
@import
) только потому, что он находит строку "css" где-то в URL-адресе.Попробуйте
<strong i="7">@import</strong> (css) url('https://fonts.googleapis.com/css?family=Nunito');