bs-community / blessing-skin-plugins

Official plugins for Blessing Skin.
MIT License
77 stars 36 forks source link

修复 legacy-api 插件 404 问题 #210

Closed HIM049 closed 6 months ago

HIM049 commented 6 months ago
XieXiLin2 commented 6 months ago

@HIM049 大多数 mod 的默认 legacy 配置都是 {ROOT_URL}/{skin, cape}/{Player}.png,这样改或许会导致出现问题。

HIM049 commented 6 months ago

不过貌似出现 404 的原因就是请求错误的由 NGINX 处理导致的。

tnqzh123 commented 6 months ago

@HIM049

不过貌似出现 404 的原因就是请求错误的由 NGINX 处理导致的。

你有没有在用宝塔之类的服务器管理面板或者一键包?能不能看下你的 Nginx 配置文件?

HIM049 commented 6 months ago

@HIM049

不过貌似出现 404 的原因就是请求错误的由 NGINX 处理导致的。

你有没有在用宝塔之类的服务器管理面板或者一键包?能不能看下你的 Nginx 配置文件?

@tnqzh123 是的,我使用宝塔来托管皮肤站。 NGINX 配置文件:nginx.txt 站点配置文件:side.txt

tnqzh123 commented 6 months ago

@HIM049

是的,我使用宝塔来托管皮肤站。

我怀疑问题出在宝塔上,而不是出在插件上。我本地开发环境测试了 1.1.3 版本的 legacy-api 插件,是没问题的。

#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/xxxx.cn.conf;
#REWRITE-END

要不你看一下 404 页面是 Nginx 返回的还是 Blessing Skin 返回的?还有看看你的 Nginx 的 URL 重写规则,或者看看你的宝塔的站点配置,里面有没有针对 png 后缀的文件做什么特殊处理,比如动静分离之类的。

我听你的描述:

不过貌似出现 404 的原因就是请求错误的由 NGINX 处理导致的。

感觉像是你或者宝塔给 Nginx 加了什么奇怪的配置,让 Nginx 在请求后缀名为 png 的文件时绕过了 PHP。

Blessing Skin 本身的重写规则(或者说 Laravel 的重写规则,就是手册里让你加的那一段)的意义就是让 Nginx 在找不到文件的时候,把请求转发到 PHP,然后让 Laravel 去处理路由。

tnqzh123 commented 6 months ago

破案了,就是宝塔的问题。

你提供的 Nginx 站点配置文件中,有这么一段:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
    expires      30d;
    error_log /dev/null;
    access_log /dev/null;
}

我在本地开发环境的 Nginx 配置文件里加上这一段之后,就会导致针对 png 后缀的文件请求直接被 Nginx 返回 404。

这不是 Blessing Skin 导致的问题,也不应该由 Blessing Skin 来解决。Blessing Skin 手册中已经明确说明了不建议使用宝塔等服务器管理面板,强行使用这类面板造成的后果请自行承担。

mochaaP commented 6 months ago

wontfix