紫色风铃
紫色风铃
  • 发布:2024-07-26 15:45
  • 更新:2024-07-26 15:47
  • 阅读:164

uniapp h5 部署服务器二级目录,导致资源无法访问。

分类:uni-app

1、manifest.json 中配置

      "router" : {  
            "mode" : "history",  
            "base" : "/h5/"  
        }

2、nginx 配置

location /web {  
    try_files $uri $uri/ /web/index.html;  
    index index.html index.htm;  
}  

location /h5/ {  
    try_files $uri /h5/index.html;  
}  

location /prod-api/ {  
    proxy_set_header Host $http_host;  
    proxy_set_header X-Real-IP $remote_addr;  
    proxy_set_header REMOTE-HOST $remote_addr;  
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
    proxy_pass http://localhost:3969/;  
}

3、 页面代码

config.baseUrl = '/prod-api'
image: item.logo ? config.baseUrl + item.logo : ''

4、request.js 配置如下
uni.request({
method: config.method || 'get',
timeout: config.timeout || timeout,
url: config.baseUrl || baseUrl + config.url,
data: config.data,
header: config.header,
dataType: 'json'
}).

页面请求中图片会加了/h5 导致无法访问图片 http://xx.com/h5/prod-api/profile/upload/1/2024/07/25/1719392945477_20240725112550A032.png
正确的:http://xx.com/prod-api/profile/upload/1/2024/07/25/1719392945477_20240725112550A032.png

2024-07-26 15:45 负责人:无 分享
已邀请:
西恩十月

西恩十月

manifest.json 中 base使用 ./ 试试

  • 紫色风铃 (作者)

    bash ./ 然后mode 设置成hash,试过了不可以才换成 history的

    2024-07-26 15:51

  • 西恩十月

    回复 紫色风铃: 我就是这么设的,没有问题,并且我看了一下,正常来说正确的图片路径应该是要带 /h5的,为什么你那边是不带才是正确的呢?prod-api 应该是接口前缀吧,图片为啥要用这个?

    2024-07-26 18:05

  • 紫色风铃 (作者)

    回复 西恩十月: prod-api 是 nginx 配置的后端的反向代理

    2024-07-26 18:18

  • 紫色风铃 (作者)

    回复 西恩十月: 如果前端的图片放在文件夹的图片带上h5 没毛病,但是现在图片来自后端,就带上h5就有问题了

    2024-07-26 18:19

  • 西恩十月

    回复 紫色风铃: 图片来自后端,那链接应该是后端生成的吧,为什么会跟前端的配置有关呢?我感觉你的思路错了

    2024-07-28 08:34

要回复问题请先登录注册