使用更少的v2.7.3(使用webpack v3.1.0和更少的加载器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
语句),只是因为它在URL中的某个位置找到了“ css”字符串。
试试<strong i="7">@import</strong> (css) url('https://fonts.googleapis.com/css?family=Nunito');
很棒的@ matthew-dean确实提供了帮助。 多谢!
@ matthew-dean是否有一种方法可以告诉编译器在解析导入的URL时默认使用https? 例如,当我使用<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://...
,所以只是想知道是否可以使用config选项来执行此操作?
所以只是想知道我是否可以使用config选项来代替呢?
否。将fonts.googleapis.com
导入已编译CSS的想法非常危险,因为fonts.googleapis.com
确实会嗅探使用的浏览器(显然, node
Less会报告为Chrome / Chromium ),并可能会因此而返回不同的结果(到目前为止,我没有听说过这方面的任何问题,但是随时可以中断)。
@ dmitriy-drenkalyuk为什么不只写:
<strong i="6">@import</strong> url(https://fonts.googleapis.com/css?family=Open+Sans:400,700);
?
@ matthew-dean这是我最终所做的,只是在寻找通过config进行操作的选项,因此我们无需搜索和更新使用此类导入的所有位置。
最有用的评论
我认为这可能与以下事实有关:Less不再自动切换到“ css”导入(保留
@import
语句),只是因为它在URL中的某个位置找到了“ css”字符串。试试
<strong i="7">@import</strong> (css) url('https://fonts.googleapis.com/css?family=Nunito');