ngrok 不适用于浏览器中的路径(Angular Webserver)

Posted

技术标签:

【中文标题】ngrok 不适用于浏览器中的路径(Angular Webserver)【英文标题】:ngrok doesn't work with path in browser (Angular Webserver) 【发布时间】:2021-03-22 05:37:22 【问题描述】:

我目前正在使用 Angular 开发一个网站,并且我正在使用 Apache2 将它托管在我的 RaspberryPi 上。我正在使用 ngrok 隧道从 Internet 访问服务器。

只要我通过根路径打开它并在应用程序中单击我的方式,它就可以很好地工作。问题是每次我重新加载页面或尝试访问页面时,例如'/home' 手动,服务器返回 404 '在此服务器上找不到请求的 URL'。在本地主机上一切正常,所以它不能是 Angular。

有人知道为什么会发生这种情况以及如何解决吗?也许 ngrok 或 Apache 有问题?

非常感谢!

【问题讨论】:

在您的服务器上,您必须将对不存在的资产的每个请求重写为 index.html.. 谢谢!我完全忘记了 Angular 创建了一个 SPA。难怪找不到资源 【参考方案1】:

问题解决了!

我在 Angular 资产中添加了一个 .htaccess 文件,以将每个请求重定向到 index.html

<IfModule mod_rewrite.c>
  RewriteEngine On

  # Redirection of requests to index.html
  RewriteCond %DOCUMENT_ROOT%REQUEST_URI -f [OR]
  RewriteCond %DOCUMENT_ROOT%REQUEST_URI -d
  RewriteRule ^.*$ - [NC,L]
  RewriteRule ^(.*) index.html [NC,L]
</IfModule>

【讨论】:

以上是关于ngrok 不适用于浏览器中的路径(Angular Webserver)的主要内容,如果未能解决你的问题,请参考以下文章

嵌套组件不适用于 Angular 中的路由

节点应用程序不适用于 ngrok

NGROK 不适用于 WAN 或外部本地网络

Webpack DevServer HMR 不适用于 ngrok->docker

Angular 4路由不适用于实时网络应用

Angular JS 不适用于 IE9,但适用于其他浏览器