我正在使用路由功能编写一个 AngularJS 应用程序,但这会产生如下所示的 URL:
http://localhost/admin.html#/surveys/2/schedule
.html#
从 RESTful 的角度来看,这种中间有的 URL可以吗?为什么或者为什么不?
从技术上讲,它不是 RESTful,因为散列 ( #
) 之后的所有内容都不会到达服务器。
我认为$routeProvider
不必像担心不支持 HTML5/popState 的旧浏览器那样鼓励这些 URL。如果您想避免在 URL 中使用哈希,可以包含$locationProvider
并调用.html5Mode(true)
:http ://docs.angularjs.org/guide/dev_guide.services.$location
澄清一下,即使您切换到使用$locationProvider
,您的 URL 也将是您网站的唯一 RESTful 内容。REST 不仅仅是漂亮/可用的 URL……如果您使用 AngularJS,您仍然(阅读:您仍然应该)只是提供 HTML,而不是从您的站点实际修改服务器上的任何内容。如果您正在考虑 REST,您应该更担心设置 RESTful Web 服务并让 AngularJS 与之对话。