关于route函数生成url的原理
1. 运行环境#
框架为 Laravel 9
环境为 nginx、php 8
2). nginx 服务配置#
http://127.0.0.1/xxx/
- 我是获取地址参数,然后通过 proxy_pass 转发到不同端口,从而达到访问不同项目的目的。
location /xxx/ { proxy_pass http://localhost:8081/; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
3). 问题描述#
- 页面是可以正常访问的,但是前端组件中使用了 route () 函数,打印了 route () 函数返回的数据,显示为 127.0.0.1/ ,缺少了 xxx / 的部分
- 尝试过通过修改 env 文件中的 APP_URL 来解决此问题,但没反应。也尝试过自定义 route () 函数,通过 APP_ENV 来判断是否加前缀,毕竟上线后还是不需要 xxx / 的这个前缀的,但自定义函数由于加载顺序原因获取不到 env 里的内容。
2. 期望得到的结果#
- 希望能优雅的修改 route () 函数的 host 部分的返回值,最好能够通过配置文件的方式完成。
route('login'); // 正常情况下的返回值,http://127.0.0.1/login // 我期待的返回值,http://127.0.0.1/xxx/login
推荐文章: