使用AngularJS的单页应用程序

使用AngularJS的单页应用程序,angularjs,single-page-application,Angularjs,Single Page Application,我在一家水疗中心工作,使用烧瓶(与jinja)和AngularJS。一切正常,但当应用程序处于给定状态,我尝试在浏览器中刷新页面时,服务器会以404响应:“错误”:“未找到”。当试图通过URL访问SPA应用程序的页面时,是否有一种方法可以正确地执行此操作?这可能取决于您的开发人员http服务器的设置方式: 它应该设置为始终加载默认页面,即index.html,这样角度引擎将加载并运行,只有这样它才会服务于其他路由(状态),如localhost/state,否则角度路由器将无法解析url,因为它没

我在一家水疗中心工作,使用烧瓶(与jinja)和AngularJS。一切正常,但当应用程序处于给定状态,我尝试在浏览器中刷新页面时,服务器会以404响应:“错误”:“未找到”。当试图通过URL访问SPA应用程序的页面时,是否有一种方法可以正确地执行此操作?

这可能取决于您的开发人员http服务器的设置方式:

  • 它应该设置为始终加载默认页面,即index.html,这样角度引擎将加载并运行,只有这样它才会服务于其他路由(状态),如localhost/state,否则角度路由器将无法解析url,因为它没有加载(让http服务器处理请求,为找不到的404页提供服务)
  • http服务器有时只提供一个级别的深层url,比如localhost/state,而不是localhost/state/param,您需要更改一些设置才能正常工作,但我认为这超出了您的问题范围:)

  • 您可以在SPA中使用哈希器。您需要在初始化视图模型之前解析哈希字符串,并根据哈希值设置当前可见页面,然后绑定视图模式。

    您需要有一个规则,以便始终返回SPA index.html页面以查找与角度路由匹配的任何路由。我不确定您的web服务器是什么,apache或nginx或其他什么,但您应该能够找到如何将这些请求匹配回index.html的说明

    您必须在angular js应用程序中将html5模式启用为true。设置为false将解决您的问题。

    更新您的标记,因为该问题与python和http状态代码无关