Closed HIM049 closed 6 months ago
@HIM049 大多数 mod 的默认 legacy 配置都是 {ROOT_URL}/{skin, cape}/{Player}.png,这样改或许会导致出现问题。
不过貌似出现 404 的原因就是请求错误的由 NGINX 处理导致的。
@HIM049
不过貌似出现 404 的原因就是请求错误的由 NGINX 处理导致的。
你有没有在用宝塔之类的服务器管理面板或者一键包?能不能看下你的 Nginx 配置文件?
@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 去处理路由。
破案了,就是宝塔的问题。
你提供的 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 手册中已经明确说明了不建议使用宝塔等服务器管理面板,强行使用这类面板造成的后果请自行承担。
wontfix