我有一个具有以下路线的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;
}
答案 0 :(得分:0)
您如何在应用程序中管理路由? 历史道具还是href? 如果您使用的是href,则需要在iOS中覆盖loadUrl方法。如果您在此处共享codesandbox或代码段,那将是很棒的。