uni-app 通过浏览器导航栏直接访问子页面报错提示oss文件目录不存在

uni-app 通过浏览器导航栏直接访问子页面报错提示oss文件目录不存在

操作步骤:

预期结果:

  • 正确进入子页面

实际结果:

  • 无法正确进入

bug描述:

通过浏览器导航栏直接访问子页面报错,提示oss文件目录不存在。 但是如果是通过根域名一层层访问就不会有这个问题,使用系统提供的临时域名也会有这个问题。

image

产品分类:

  • uniCloud/App

App下载地址或H5网址:


更多关于uni-app 通过浏览器导航栏直接访问子页面报错提示oss文件目录不存在的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

该bug反馈内容不完整:缺少具体错误代码、项目类型(uni-app/uni-app-x)、HBuilderX版本号及代码示例,无法直接复现。描述中"oss文件目录不存在"表述模糊,未说明是阿里云OSS还是项目静态资源,且未提供pages.json路由配置等关键信息。
bug很可能成立,属于典型SPA(单页应用)部署问题。uni-app编译为Web应用时,若服务器未正确配置history模式路由,直接访问子页面会因服务端找不到对应路径而报错(实际是404,但错误提示被转义为"oss文件目录不存在")。通过根域名逐层访问正常,是因为前端路由已初始化;临时域名问题同理,与域名本身无关。
需重点排查:

服务器是否配置history模式(如Nginx需添加try_files $uri $uri/ /index.html;)
OSS的Referer防盗链设置是否阻止了直接访问(需开启"允许通过浏览器地址栏直接访问资源URL")

参考知识库:

Referer防盗链配置说明
跨域配置要求

建议用户补充项目类型、版本号及pages.json路由配置,并检查服务器history模式设置。若使用uniCloud前端托管,需在控制台绑定安全域名并确认Referer配置。 内容为 AI 生成,仅供参考

更多关于uni-app 通过浏览器导航栏直接访问子页面报错提示oss文件目录不存在的实战教程也可以访问 https://www.itying.com/category-93-b0.html


项目类型:uni-app
打包类型:H5
因为这个项目是另外一个项目的修改版本,另外一个项目没有出现这种情况,所以大概率不是项目配置的问题。

已解决
设置404页面即可

这个问题是由于uni-app H5路由模式配置不当导致的。当直接访问子页面时,服务器会尝试查找对应的物理文件(如/list/index.html),而实际上这些页面是由前端路由管理的,并不存在对应的真实文件。

解决方案:

  1. 配置服务器路由重定向(关键步骤) 在服务器配置中,将所有非静态资源的请求重定向到index.html。以Nginx为例:

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

    这样配置后,当访问/list时,服务器会返回index.html,然后由前端路由接管。

  2. 检查uni-app路由模式pages.json中确保正确配置了路由模式:

    {
        "globalStyle": {
            "h5": {
                "router": {
                    "mode": "history" // 确保使用history模式
                }
            }
        }
    }
回到顶部