引入字体避坑(引入字体成功,没报错,但是就是没有效果)

本文介绍了一位开发者在使用CSS引入外部字体时遇到的问题:虽然没有报错,但字体未能正常显示。经过排查发现原因是文件后缀名使用了大写字母。文中给出了正确的@font-face规则示例。
部署运行你感兴趣的模型镜像
css 引入外部字体没报错,但是没有效果。
坑了我一下午,查了各种资料,结果是后缀大写了。我下载下来的字体就是大写的,引入就没效果,改成小写就可以了
字体后缀必须小写,不然引入会没效果
@font-face{
    font-family: 'music';
    src: url('../font/music-icon.eot');
    src: url('../font/music-icon.eot') format('embedded-opentype'),
         url('../font/music-icon.ttf') format('truetype'),
         url('../font/music-icon.woff') format('woff'),
         url('../font/music-icon.svg') format('svg');
    font-weight: normal;
    font-style: normal;
}

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### Vue 项目中引入外部 CSS 字体报错解决方案 当在 Vue 项目中引入外部 CSS 字体时,可能会遇到诸如 `Failed to decode downloaded font` 的错误。这类问题通常由以下几个原因引起: #### 跨域资源共享 (CORS) 如果字体文件托管在一个不同的域名上,则浏览器会阻止这些资源的加载以防止跨站脚本攻击。为了克服这个问题,在本地 CDN 上存储所需的字体文件是一个有效的策略[^1]。 ```bash # 假设已将字体文件放置于 public/fonts 目录下 ``` 对于已经迁移到内部 CDN 或者本地服务中的静态资源,确保 Webpack 配置允许正确解析路径非常重要。可以通过调整 `publicPath` 设置来实现这一点。 #### 正确配置 Webpack 和 Vue CLI 确保 `.env` 文件或其他环境变量设置不会覆盖默认公共路径。例如: ```javascript // vue.config.js 中添加如下配置项 module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/your-subpath/' : '/' }; ``` 另外,确认 `@import` 语句指向正确的相对或绝对 URL 地址。比如: ```css /* 在 style 标签内 */ <style lang="scss"> @import './assets/css/font-awesome.min.css'; </style> ``` 或者通过 JavaScript 动态注入样式表链接节点至 HTML 文档头部: ```html <!-- index.html --> <head> ... <link rel="stylesheet" href="<%= BASE_URL %>static/styles/custom-fonts.css"/> ... </head> ``` #### 检查并修正 HTTP 请求头 有时即使解决了上述问题仍然无法正常显示自定义字体,这时应该检查实际发出的HTTP请求及其响应状态码和内容类型(Content-Type),确保它们符合预期。特别是 Content-Type 应该被设定为 `application/x-font-ttf`, `application/vnd.ms-opentype` 等适当值取决于所使用的具体字体格式[^4]。 #### 浏览器缓存清理 最后别忘了清除浏览器缓存以便看到最新的更改效果。某些情况下旧版本的资源可能仍会被客户端缓存下来从而掩盖了新部署后的改进成果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值