You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用本地ui-grid.css时ui-grid.woff为何变为类HTML文件?

解决Angular UI-Grid本地CSS引入时字体文件被下载为HTML的问题

我之前也碰到过类似的字体加载坑,结合你描述的情况,咱们一步步排查可能的原因和解决办法:

1. 检查字体文件的相对路径是否正确

首先打开你本地的ui-grid.css,找到@font-face规则,看看里面的字体引用路径是不是和本地文件结构匹配。比如官方的UI-Grid CSS里的字体路径一般是这样的:

@font-face {
  font-family: 'ui-grid';
  src:url('../fonts/ui-grid.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

如果你的CSS文件放在css/ui-grid/4-11-1/目录下,那字体文件应该放在css/ui-grid/fonts/ui-grid.woff的位置(也就是CSS目录的上一级的fonts文件夹里)。如果路径写错了,服务器会返回404页面,而浏览器把这个404 HTML当成字体文件下载,就会出现你说的问题。

2. 确认服务器是否配置了正确的MIME类型

很多服务器默认不会识别.woff字体文件的MIME类型,导致服务器把字体文件当成HTML来解析返回。你需要给服务器添加对应的MIME类型:

  • Nginx:在nginx.conf的http块里添加:
    types {
        font/woff woff;
    }
    
  • IIS:打开IIS管理器,找到你的站点,进入「MIME类型」,添加新的规则:扩展名.woff,MIME类型application/font-woff
  • Apache:在.htaccess里添加:
    AddType font/woff .woff
    

3. 检查本地字体文件是否完整或损坏

有时候只下载了CSS文件,却漏掉了字体文件,或者下载的字体文件本身损坏了。建议重新下载完整的Angular UI-Grid 4.11.1包,确保fonts文件夹和css文件夹的层级和官方包一致,再把完整的文件放到本地项目里。

4. 排查前端路由导致的重定向问题

如果你的Angular项目用了HTML5模式的路由,服务器可能会把所有静态资源请求都重定向到index.html,包括字体文件请求。这时候需要配置服务器,让它优先返回存在的静态文件,只有当文件不存在时才重定向到首页:

  • Apache:在.htaccess里添加:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.html [L]
    
  • Nginx:在站点配置里添加:
    location / {
        try_files $uri $uri/ /index.html;
    }
    

按照这个顺序排查,应该能找到问题所在。

内容的提问来源于stack exchange,提问作者p zankat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 16:28:11