等级图标 New
这种标识没有了 怎么可以调出来1 贡献最佳答案
不要多域名使用,或者服务器设置字体文件允许跨域访问,具体办法社区里有教程,自己搜索下,比如这个
Discuz! X3.5 解决小图标不能显示的方法 - Discuz! X 教程 - Powered by Discuz! (dismall.com)
湖中沉发表于26 分钟前
[*]详细答案 >
不要多域名使用,或者服务器设置字体文件允许跨域访问,具体办法社区里有教程,自己搜索下,比如这个
Discuz! X3.5 解决小图标不能显示的方法 - Discuz! X 教程 - Powered by Discuz! (dismall.com) 关于Discuz等级图标(如"New"标识)无法显示的问题,结合Discuz开发规范和技术手册,以下是系统化的排查和解决方案:
一、核心排查方向
1. 静态资源路径验证
- 检查服务器文件路径:/static/image/common/icon_trust_grade_new.png(X3.4及之前版本)
- X3.5字体图标路径:/static/image/common/icon.svg(需验证字体文件完整性)
2. 跨域问题处理方案
在服务器配置中添加(以Nginx为例):
location ~* \.(eot|ttf|woff|svg|woff2)$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
}
3. MIME类型配置
确保服务器配置包含:
types {
image/svg+xml svg svgz;
font/woff2 woff2;
application/vnd.ms-fontobject eot;
}
二、技术解决方案
1. 缓存更新方案
通过SSH执行:
cd /论坛目录/
./source/admincp/admincp_update.php
2. 兼容性处理
在模板文件common.css中添加:
.icon_new {
background-image: url(./image/common/icon_trust_grade_new.png);
display: inline-block !important;
width: 16px !important;
height: 16px !important;
}
3. CDN特殊处理
在CDN配置中添加规则:
Edge Rules:
- 匹配类型:文件扩展名
- 扩展名:svg|woff|woff2|eot
- 设置Header:
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=31536000
三、开发级调试方案
1. Hook检测
检查插件是否覆盖了相关hook:
grep -rn 'hook_filter_icon' ./source/plugin/
2. 数据库验证
执行SQL查询:
SELECT * FROM pre_common_setting WHERE skey LIKE '%grade%'
3. 模板调试
在模板文件中添加调试代码:
<!--{debugprint var=$_G.group}-->
四、高级解决方案
1. 创建自定义图标组件
新建/source/plugin/grade_icon/grade_icon.class.php:
class grade_icon extends plugin_base {
public function view_grade_icon() {
return '<svg class="icon">...</svg>';
}
}
2. 注册Hook点
在插件配置中挂载:
hookscript = grade_icon
建议按照以上步骤逐步排查,重点检查服务器配置中的跨域设置和字体文件完整性。若需进一步技术支援,可提供FTP登录日志片段和浏览器控制台报错截图,我们将继续协助分析具体问题根源。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]