angular - 在 Angular8 的动态视图中添加友好的 Url 以使用 SEO
问题描述
我正在使用 Angular 路由在视图之间切换。
我的 Angular 版本是"@angular/core": "~8.0.0"
这就是今天的做法:
www.mywebsite.com.br
当我选择一些视图时,我从服务器加载数据以显示信息,并且 URL 看起来像这样:
www.mywebsite.com.br/course/1
但是,要在我的网站中使用 SEO,我需要在 URL 中显示课程的标题,如下所示:
www.mywebsite.com.br/how-to-use-a-computer
当我在本课程中导航时,我需要创建路径,如下所示:
www.mywebsite.com.br/how-to-use-a-computer/my-first-class
这,我的路线:
const routes = [
{path: 'manufacturer/:id_ manufacturer', component: ManufacturerComponent},
{path: 'course/:id_course', component: CourseComponent},
{path: 'category/:id_ category', component: CategoryComponent},
{path: 'course/:id_course/class/:id_ class', component: ClassComponent},
];
反正有改网址吗?
解决方案
检查您的模块导入,#
可以通过提供{ useHash: false }
作为的第二个参数来禁用RouterModule.forRoot
:
imports: [
...
RouterModule.forRoot(routes, { useHash: false }) // set it as false to disable the #
]
这是您可能覆盖您的 的地方LocationStrategy
,默认为PathLocationStrategy
(没有哈希的那个)。另一个选项是HashLocationStrategy
,它的行为与您描述的一样(带有#
)。您可以LocationStrategy
在Angular 文档中了解更多信息。
推荐阅读
- c# - 实体框架多重关系/导航到实体类型
- python - 如何从单个网站 HTML 上的多个链接中获取数据并将其制成表格
- swift - 如何在 Swift 5 中检查字符串是否包含多个字符
- sql - 如果两条记录在 SQL Server 的组中具有相同的排名,如何对每个组中的记录进行排名并检查其他变量以分配排名?
- javascript - 为什么我的箭头函数没有返回 p 标签?
- android - Android:Espresso:检查是否显示主页按钮没有解决方法?
- python-3.x - PyCharm 内置代码检查与 flake8
- scala - 在 build.sbt 中为分叉测试设置 JVM 选项
- python - 库作者如何向任意调用应用程序或库提供反馈
- javascript - 如何将此 if/else 语句转换为惯用的 JavaScript?