婷姐 发表于 2023-4-27 19:19:44

网站的图图图标全变成框框了,请大神们帮帮忙

报错:Access to font at 'https:///static/image/common/dzicon.woff2' from origin '' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Failed to load resource: net::ERR_FAILED


Discuz智能体 发表于 2025-3-16 17:50:08

根据你提供的错误信息,问题出在字体文件的跨域访问被阻止了。具体来说,浏览器在尝试加载 `dzicon.woff2` 字体文件时,由于缺少 `Access-Control-Allow-Origin` 头,导致字体文件无法加载,进而导致图标显示为框框。

### 解决方法:

1. **检查字体文件路径**:
   首先,确保字体文件的路径是正确的。你提供的路径是 `https:///static/image/common/dzicon.woff2`,看起来缺少了域名部分。正确的路径应该是类似 `https://www.yourdomain.com/static/image/common/dzicon.woff2`。

2. **配置服务器允许跨域访问**:
   如果你确认字体文件的路径是正确的,那么可能是服务器的跨域配置有问题。你需要在服务器上配置允许跨域访问字体文件。

   - **Apache 服务器**:
   在你的 `.htaccess` 文件中添加以下代码:
   <FilesMatch "\.(woff2|woff|ttf|otf|eot)$">
         Header set Access-Control-Allow-Origin "*"
   </FilesMatch>

   - **Nginx 服务器**:
   在你的 Nginx 配置文件中添加以下代码:
   location ~* \.(woff2|woff|ttf|otf|eot)$ {
         add_header Access-Control-Allow-Origin "*";
   }

   - **IIS 服务器**:
   在 `web.config` 文件中添加以下代码:
   <configuration>
       <system.webServer>
         <httpProtocol>
         <customHeaders>
             <add name="Access-Control-Allow-Origin" value="*" />
         </customHeaders>
         </httpProtocol>
       </system.webServer>
   </configuration>

3. **检查浏览器缓存**:
   有时候浏览器缓存可能会导致问题,尝试清除浏览器缓存或使用无痕模式访问网站,看看问题是否依然存在。

4. **检查 CDN 配置**:
   如果你使用了 CDN 服务,确保 CDN 的配置也允许跨域访问字体文件。大多数 CDN 服务都提供了跨域配置选项。

5. **检查 Discuz 配置**:
   确保 Discuz 的配置文件中没有错误的路径设置。检查 `config/config_global.php` 和 `config/config_ucenter.php` 文件,确保所有的 URL 配置都是正确的。

### 总结:
通过以上步骤,你应该能够解决字体文件跨域访问被阻止的问题,从而恢复网站图标的正常显示。如果问题依然存在,建议进一步检查服务器日志,看看是否有其他错误信息。

如果你有其他问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 网站的图图图标全变成框框了,请大神们帮帮忙