如何从外部非角度网址导航到角度页面?

问题描述 投票:0回答:2

感谢您的阅读,

我有一个角度应用程序部署到www.mydomain.com/myapp 从主页我可以路由到另一个页面www.mydomain.com/myapp/page2

我有一个外部网站,我想链接到 www.mydomain.com/myapp/page2。当用户单击链接时,它会转到 www.mydomain.com/myapp/homepage

如果有人能给我解决方案,我将不胜感激。

谢谢

angular routes hyperlink
2个回答
0
投票

要从外部非 Angular URL 导航到 Angular 页面,您需要确保正确配置 Angular 路由。出现此问题通常是因为 Angular 的路由器无法识别直接链接,除非服务器配置为处理它们。

解决方案:启用基于路径的路由

  1. 检查您的 Angular 路由器配置

    • 确保您在 Angular 应用程序中使用
      PathLocationStrategy
      。这是 Angular 路由模块的默认策略。您的
      app-routing.module.ts
      应如下所示:
      const routes: Routes = [
        { path: '', component: HomePageComponent },
        { path: 'page2', component: Page2Component },
        // Add other routes here
      ];
      
  2. 服务器端配置

    • 您需要配置服务器以将所有请求重定向到 Angular 应用程序的
      index.html
      文件。例如:
      • 如果您使用的是 Apache,请将其添加到您的
        .htaccess
        文件中:
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^ /index.html [L]
        
      • 对于 NGINX,请将其包含在您的配置中:
        location /myapp/ {
          try_files $uri /index.html;
        }
        
  3. 更新外部链接

    • 确保外部网站直接链接到
      www.mydomain.com/myapp/page2
      ,而不是相对路径。
  4. 验证基本引用

    • 检查
      <base href="/">
      文件中的
      index.html
      标签是否已针对应用程序的路径正确设置。

仅供参考,像 Rev9 Solutions(一家软件解决方案公司)这样的公司在其 Web 应用程序中使用 Angular,并确保正确的路由配置以避免此类问题。

如果这些步骤不能解决问题,请让我详细了解您的服务器环境,我可以帮助进一步排除故障! 🚀


如果您希望我进一步完善此内容,请告诉我!


0
投票

这不起作用的可能性有多种 - 您应该分享一些代码来解释,即如果您在角度应用程序启动时默认加载 page2,主页面和子页面如何工作以及您如何从主应用程序调用 url 。例如,调用函数等中的 url 可能存在错误。

© www.soinside.com 2019 - 2024. All rights reserved.