Vuejs2 带有ServiceStack路由回退和Api前缀的Vue.js路由器历史记录模式
每个客户端路由都以散列开始。如何在不干扰api路由的情况下在Vue路由器中启用历史模式Vuejs2 带有ServiceStack路由回退和Api前缀的Vue.js路由器历史记录模式,vuejs2,
servicestack,vue-router,Vuejs2,
servicestack,Vue Router,每个客户端路由都以散列开始。如何在不干扰api路由的情况下在Vue路由器中启用历史模式 此外,我不希望以“/api”开始我的路线。客户端路由在Config.HandlerFactoryPath设置为“api”时不起作用。有没有办法做到这一点 APPHOST public class AppHost : AppHostBase { private BackendSettings _settings; private IHostingEnvironment _environment;
public class AppHost : AppHostBase
{
private BackendSettings _settings;
private IHostingEnvironment _environment;
public AppHost(BackendSettings settings, IHostingEnvironment environment) : base("Template.Www", typeof(SurveyService).Assembly)
{
_settings = settings;
_environment = environment;
Routes
.Add<GetSurvey>("/api/survey/{id}", "GET");
}
public override void Configure(Container container)
{
bool isDevelopment = _environment.IsDevelopment();
Plugins.Add(new TemplatePagesFeature());
SetConfig(new HostConfig
{
AddRedirectParamsToQueryString = true,
DebugMode = isDevelopment,
});
}
}
请求模型
[Exclude(Feature.Metadata)]
[FallbackRoute("/{PathInfo}", Matches = "AcceptsHtml")]
public class Fallback
{
public string PathInfo { get; set; }
}
VUE路由器
export default new Router({
mode: 'history',
routes: [
{
path: '/',
component: Home
},
{
path: '/test',
component: Test
},
{
path: '*',
redirect: '/'
}
]
})
[FallbackRoute]
的目的是返回不匹配路由的主页,因此,如果路由仅在客户端上定义,则整页请求将返回主页,以便客户端路由可以处理路由
不可能有匹配的服务器路由和客户端路由,因为客户端路由需要服务器上的回退处理程序返回主页,这只会发生在不匹配的请求上。实际上,我不确定我是否完全理解您的答案。就我所见,我以与ServiceStack Vue模板中相同的方式配置了[FallbackRoute]。为什么历史模式在该模板中工作,但在这里不工作?@glazjoon查看一下我更新的Vue路由器。。历史模式现在起作用了,但它不像温泉浴场。每次我改变路线时,包裹都会被装载。有什么帮助吗?@glazjoon我不知道这意味着什么,但你应该从一个SPA模板开始,它的行为确实像一个SPA,请参阅上的实时演示,我的意思是SPA不应该在客户端导航上刷新。
export default new Router({
mode: 'history',
routes: [
{
path: '/',
component: Home
},
{
path: '/test',
component: Test
},
{
path: '*',
redirect: '/'
}
]
})