React页面在iOS WKWebView中返回404

时间:2018-08-18 18:03:50

标签: ios reactjs http-status-code-404 wkwebview react-router-dom

我有一个具有以下路线的React应用:

  

example.com/   example.com/policy

当我尝试从iOS应用的WKWebView访问example.com/时,它将呈现正确的主页。但是当我尝试访问example.com/policy时,nginx在WKWebView中返回404错误。所有页面似乎在所有移动/桌面浏览器中都能正常工作。

在常规浏览器中访问example.com/policy

access.log:

[18/Aug/2018:17:10:06 +0000] "GET /js/main.js HTTP/1.1" 304 0 "https://www.example.com/policy" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like $

[18/Aug/2018:17:10:06 +0000] "GET /js/jquery-1.11.3.min.js HTTP/1.1" 304 0 "https://www.example.com/policy" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 $

[18/Aug/2018:17:10:06 +0000] "GET /js/plugins.js HTTP/1.1" 304 0 "https://www.example.com/policy" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li$

[18/Aug/2018:17:10:07 +0000] "GET /service-worker.js HTTP/1.1" 200 3164 "https://www.example.com/service-worker.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit$

在下面的iOS应用的WKWebView中访问相同的路由是access.log: [18/Aug/2018:17:13:45 +0000] "GET /policy HTTP/1.1" 404 152 "-" "Mozilla/5.0 (iPad; CPU OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)"

我想知道这是否是React Router的问题,它阻止了它渲染内容,尽管我非常确定问题不在于内容。

更新: Nginx的问题在于将URL路由翻译到我的React应用程序。我正在使用React-router-dom来管理React App的路由。我在nginx conf文件中添加了以下几行,效果很好。

location /policy {
rewrite ^/policy(.*) /$1 break;
proxy_pass http://example.com/policy;
}

1 个答案:

答案 0 :(得分:0)

您如何在应用程序中管理路由? 历史道具还是href? 如果您使用的是href,则需要在iOS中覆盖loadUrl方法。如果您在此处共享codesandbox或代码段,那将是很棒的。