Angular 8 个站点地图和 robots.txt
Angular 8 sitemap and robots.txt
我使用 angular 创建了一个 angular 应用程序 8. 我正在 Google 上引用我的网站。我在项目路径中添加了 sitemap.xml 和 robot.txt,但是当我尝试通过这样做在浏览器中访问文件时:
https://blablawebsite.fr/sitemap.xml
路由模块正在获取路由,找不到页面。我怎样才能确保 sitemap.xml 和 robots.txt 没有被路由模块选中?
您需要先考虑将您的项目转换为 Angular Universal。 Google 和其他搜索引擎机器人不能也不会浏览您的应用程序,因为所有这些都是事后发生的。
从这里开始:https://angular.io/guide/universal
很多人误解了所有这些是如何工作的,并且在意识到网站和 SPA 之间的区别之前深入了解他们的项目。没什么大不了的,您仍然可以让您的 angular 应用通过服务器端渲染
获得排名
使用 Angular Universal
和 Cloud Functions for Firebase
进行托管,我将 sitemap.xml
和 robots.txt
放在 src
中。然后在 angular.json
中 "assets"
添加它,像这样:
...
"assets": [
"APP_NAME/src/robots.txt",
"APP_NAME/src/sitemap.xml",
],
...
效果很好 :)
与我对已接受答案的理解相反,tt 不需要 将 angular 通用添加到项目中只是为了添加 sitemap.xml 或 robots.txt.
正如 @David 在他的评论中更简洁地说的那样,您需要做的就是:
- Add 把文件放到你的项目中(在favicon.ico旁边)在/src
- 将它们添加到项目>架构师>构建>选项>资产在您的angular.json 像这样:
"assets": [
"src/favicon.ico",
"src/assets",
"src/robots.txt",
"src/sitemap.xml"
],
解释的比较详细here。
添加。备注:
- 确保您不会不小心仅在 angular.json 中捕捉到“测试”的资产,它们在浏览文件时更早出现
- 如果您的 robots.txt 文件无效的警告不再出现在 Chrome 开发工具
- 然而,即使使用 robots.txt,Google 以外的搜索引擎也无法很好地处理没有服务器端呈现的 Angular SPA(例如通过 Angular Universal)。甚至 Google 的功能也存在争议。这个guy解释得很好。
- 我的回答适用于 Angular 10 和 11,其他版本我不知道
我使用 angular 创建了一个 angular 应用程序 8. 我正在 Google 上引用我的网站。我在项目路径中添加了 sitemap.xml 和 robot.txt,但是当我尝试通过这样做在浏览器中访问文件时:
https://blablawebsite.fr/sitemap.xml
路由模块正在获取路由,找不到页面。我怎样才能确保 sitemap.xml 和 robots.txt 没有被路由模块选中?
您需要先考虑将您的项目转换为 Angular Universal。 Google 和其他搜索引擎机器人不能也不会浏览您的应用程序,因为所有这些都是事后发生的。
从这里开始:https://angular.io/guide/universal
很多人误解了所有这些是如何工作的,并且在意识到网站和 SPA 之间的区别之前深入了解他们的项目。没什么大不了的,您仍然可以让您的 angular 应用通过服务器端渲染
获得排名使用 Angular Universal
和 Cloud Functions for Firebase
进行托管,我将 sitemap.xml
和 robots.txt
放在 src
中。然后在 angular.json
中 "assets"
添加它,像这样:
...
"assets": [
"APP_NAME/src/robots.txt",
"APP_NAME/src/sitemap.xml",
],
...
效果很好 :)
与我对已接受答案的理解相反,tt 不需要 将 angular 通用添加到项目中只是为了添加 sitemap.xml 或 robots.txt.
正如 @David 在他的评论中更简洁地说的那样,您需要做的就是:
- Add 把文件放到你的项目中(在favicon.ico旁边)在/src
- 将它们添加到项目>架构师>构建>选项>资产在您的angular.json 像这样:
"assets": [
"src/favicon.ico",
"src/assets",
"src/robots.txt",
"src/sitemap.xml"
],
解释的比较详细here。
添加。备注:
- 确保您不会不小心仅在 angular.json 中捕捉到“测试”的资产,它们在浏览文件时更早出现
- 如果您的 robots.txt 文件无效的警告不再出现在 Chrome 开发工具
- 然而,即使使用 robots.txt,Google 以外的搜索引擎也无法很好地处理没有服务器端呈现的 Angular SPA(例如通过 Angular Universal)。甚至 Google 的功能也存在争议。这个guy解释得很好。
- 我的回答适用于 Angular 10 和 11,其他版本我不知道