1

在我的项目中的路由器设置这样的:如何在浏览器在Angular 1.5中刷新时保留相同的页面?

myApp.component("rsapproot", { 
     transclude: true, 
     template: "<ng-transclude></ng-transclude>", 
     $routeConfig: [ 
      { path: "/login", component: "rsapplogin", name: "Login" }, 
      { path: "/tenant", component: "rsapptenantid", name: "Tenant" }, 
      { path: "/my-dashboard", component: "rsappmyrdash", name: "MyDash" }, 
      { path: "/my-reports", component: "rsappmyreports", name: "AppReports"}, 
      { path: "/equipment-details/:type/:id", component: "rsequipmentdetails", name: "EquipmentDetails" }, 
      { path: "/my/resources", component: "rsappresourceslist", name: "AppResourceList" }, 

F5后,现在预期的行为,或粘贴URL时,分别具有电流路径重新加载或导航到该路径,而不是最初的应用程序路径加载。

我知道为了在重新加载应用程序后保留页面,应该给出表示路径的url。

但那东西已经在那里,路径分别都是唯一的。

那么我错过了什么?

+0

您是否在启用HTML5模式的情况下使用此功能? –

+0

否也可以与组件路由器一起使用。能否请你帮忙 ? – StrugglingCoder

回答

2

这需要在服务器端进行处理。下面是一个说明当前问题的示例:

您将应用程序加载到其初始路径/,然后导航至/login。当你刷新页面时,你的网页浏览器会发送一个GET请求到http://yourdomain.com/login(我假设)通过发送你的Angular应用程序(index.html)给客户端不会有任何反应。

您需要将您的服务器配置为响应您的index.html指定的所有Angular路径的GET请求。这通常是通过全线路径/*完成的,而不是单独指定每条路线。

+0

这是否意味着对于所有可能的路由,服务器将用适当的模板进行响应,以便为特定路由加载?但是,这不是Angular Router的意义么?我有点困惑。 – StrugglingCoder

+1

不完全。例如,'http:// yourdomain.com'用你的'index.html'回应。为了让'http:// yourdomain.com/login'在刷新时工作,您的服务器还需要用'index.html'作为响应。一旦客户端收到该文件,角路由器就可以接管 –

相关问题