例如该网站的https://www.oschina.net/question/1442265_2310885这个目录,它是不是通过控制器返回的html,而不是直接访问的页面?
我认为它是先访问question控制器下的一个action,然后action返回一个html页面显示。如果是这样为啥不直接做一个页面然后这样访https://www.oschina.net/question?id=1442265_2310885
然后,以 .net mvc 框架为例,它可以通过定义路由来实现此效果
routes.MapRoute(
"Question",
"question/{userId}_{questionId}",
new {controller="Question", action="Details"},
new {userId= @"\d+",questionId= @"\d+" }
);
我刚百度了一下,他们说seo和页面静态化,看起来好复杂
@灬丶: 不会的,还可以通过特性标记 Route("/question/{userId}_{questionId}")
来指定
@灬丶: 所以你是想做伪静态,还是生成静态页,或者是做缓存~
Route("/question/{userId}_{questionId}.html")
@易墨: 我只是了解一下,如果用控制器只是为了实现这种url我觉得没什么意义
@灬丶: 文章不就是说的静态化嘛。
如果是伪静态的话这样子就可以了
Route("/question/{userId}_{questionId}.html")
@灬丶: 那你应该找应用缓存,cdn缓存的相关资料了
@易墨:我这里是前后端分离的项目,访问api我可以用resultful这样的也可以实现,前后端分离的不适合你说的那种吧
@灬丶: 前后端分离不得看你怎么分,用的啥方法吗,我只是举个栗子~
@易墨: ok,多谢。
页面模式早就已经过世了,现在是mvc,再然后就是前后端分离。
至于路由导航问题,多的是为了搜索引擎友好吧。
你可以问问红薯