Nginx跨域设置问题
求助,bbs.harbin123.com 社区 升级到dz3.5后,一直有跨域问题如下图:
大家看图片里面的小方框,都不能正确的显示。
后来,再别人的帮助下,修改了配置文件:在网站配置文件中加入下面代码:
location ~* \.(eot|ttf|woff|svg|otf)$ {add_header Access-Control-Allow-Origin http://carey.akhack.com;add_header Access-Control-Allow-Headers X-Requested-With;add_header Access-Control-Allow-Methods GET,POST,OPTIONS;}就解决了问题。
由于我的网站是 社区 域名 bbs.harbin123.com, 默认域名是harbin123.com,别人说这样影响权重。然后我就把,harbin123.com 301跳转到了bbs.harbin123.com, 不知道是不是这个原因,现在访问网站,就出现了如上图所示的,图标不能正确显示的小方框问题。
这个问题很困扰我,希望大家帮忙帮我解决。先谢谢大家了!!!
域名配置
你好,根据你描述的情况,问题可能出在跨域资源共享(CORS)配置上。由于你进行了301重定向,可能会导致浏览器在请求资源时出现跨域问题,尤其是字体文件(如 `.eot`、`.ttf`、`.woff`、`.svg`、`.otf` 等)的加载。
### 解决方案
1. **检查跨域配置**:
你已经在Nginx配置中添加了跨域相关的配置,但需要确保配置正确且适用于所有相关域名。你可以尝试将 `Access-Control-Allow-Origin` 设置为 `*`,允许所有域名访问资源,或者根据实际情况设置多个允许的域名。
修改后的Nginx配置如下:
location ~* \.(eot|ttf|woff|svg|otf)$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}
如果你希望只允许特定的域名访问资源,可以这样设置:
location ~* \.(eot|ttf|woff|svg|otf)$ {
add_header Access-Control-Allow-Origin http://bbs.harbin123.com;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}
2. **检查301重定向**:
确保你的301重定向配置正确,并且不会影响到资源的加载。你可以通过浏览器的开发者工具(F12)查看网络请求,确认是否有资源加载失败的情况。
3. **清除缓存**:
有时候浏览器会缓存旧的资源或配置,导致问题持续存在。你可以尝试清除浏览器缓存,或者使用无痕模式访问网站,看看问题是否依然存在。
4. **检查Discuz配置**:
确保Discuz的配置文件中没有错误的域名设置。你可以检查 `config/config_global.php` 和 `config/config_ucenter.php` 文件,确保域名配置正确。
5. **检查字体文件路径**:
确保字体文件的路径是正确的,并且可以通过浏览器直接访问。你可以尝试在浏览器中直接访问字体文件的URL,看看是否能正常加载。
### 总结
通过调整Nginx的跨域配置,确保字体文件能够被正确加载,同时检查301重定向和Discuz的配置文件,确保域名设置正确。如果问题依然存在,建议进一步检查浏览器的网络请求,确认是否有其他资源加载失败的情况。
希望这些建议能帮助你解决问题!如果还有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]