首页 > 解决方案 > 路由不适用于“blog/:page”的生产

问题描述

我正在学习 Angular,并正在尝试为自己建立一个博客网站。当我使用该网站运行它时,该网站在我的本地系统上按预期工作

ng serve

但另一方面,当我创建它的构建并将其上传到生产环境时

ng build --prod

路由不起作用。.htaccess我在我的服务器上添加了代码

RewriteEngine On
# If an existing asset or directory is requested go to it as it is

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d

RewriteRule ^ - [L]

# If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html

路由开始工作

http://www.atest.co.in/blog/

但仍然失败

http://www.atest.co.in/blog/Manual_Testing%2FIs_Manual_Testing_Dying

上面的路由集如下:

  {
    path: 'blog',
    component: BlogComponent
  },
  {
    path: 'blog/:page',
    component: BlogComponent
  }

虽然后一个工作正常localhost

标签: angularangular-routing

解决方案


更新

根据您的代码,这只是静态 html 文件加载。但是您问题中的路线在/文件名中有一个编码为%2F. 我认为直接路由时会出错。如果您首先访问http://www.atest.co.in/blog/然后单击侧边栏中的链接,您将获得该页面。

删除文件名中的 %2F 字符,它会起作用。


推荐阅读