我正在使用路由功能编写一个 AngularJS 应用程序,但这会生成如下所示的 URL:
http://localhost/admin.html#/surveys/2/schedule
从 RESTful Angular 来看,这种中间有 .html#
的 URL 可以吗?为什么或为什么不?
最佳答案
从技术上讲,它不是 RESTful,因为哈希值 (#
) 之后的所有内容都永远不会到达服务器。
我不认为 $routeProvider
一定会鼓励这些 URL,就像它担心不支持 HTML5/popState 的旧浏览器一样。如果您想避免在 URL 中使用哈希,您可以包含 $locationProvider
并调用 .html5Mode(true)
:http://docs.angularjs.org/guide/dev_guide.services.$location
需要澄清的是,即使您改用 $locationProvider
,您的 URL 也将是您网站上唯一符合 REST 风格的内容。 REST 不仅仅是漂亮/可用的 URL...如果您使用 AngularJS,您仍然(阅读:您仍然应该)只是提供 HTML,而不是从您的站点实际修改服务器上的任何内容。如果您正在考虑 REST,那么您应该更担心设置 RESTful Web 服务并让 AngularJS 与之对话。
关于rest - AngularJS 路由鼓励的 URL 是否符合 REST 原则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16968559/