我用webman新创建的项目
composer create-project workerman/webman
然后再安装webman-admin
composer require -W webman/admin
然后访问带端口号的地址:
一切都是正常的。
但是我的服务器、域名、端口都有限制,所以我不能在url根路径下访问webman-admin
于是我在nginx中做了代理:
# 将/admin的请求转到127.0.0.1:55602
location /admin/ {
proxy_pass http://127.0.0.1:55602/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
然后我启动服务后,我通过nginx代理访问网站:
结果发现虽然install页面打开了,但是所有静态资源(样式、脚本、图片)都没有加载出来,用F12看一下,以pear.css为例,浏览器加载资源的uri是这个:
http://domain/app/admin/component/pear/css/pear.css
其实我们期望它加载资源的路径是:http://domain/admin/app/admin/component/pear/css/pear.css
我看了plugin/admin/app/view中的页面源代码,它加载资源的路径是这样写的
<link rel="stylesheet" href="/app/admin/component/pear/css/pear.css" />
如果我手动把它改成<link rel="stylesheet" href="../app/admin/component/pear/css/pear.css" />
那么无论我访问 http://domain/admin/app/admin 还是 http://domain/admin/app/admin 都是正常的,可是我知道这种改法是不科学的,工作量也很大。
所以请问有没有更好的方案,让webman-admin可以运行在站点的非根路径上?
搜索过整个社区,没有找到具体的解决方案。
IDE 批量修改,其实工作量不大
为什么不直接/app/admin走反向代理。
楼主找到解决方案了吗
官网有例子:https://www.workerman.net/plugin/11
rewrite ^/(.*)$ /app/$1 break;
将
/app/admin
的请求转到127.0.0.1:55602