在没有使用node的服务器上如何处理前端路由?

see311
  • 384

小白一个,不知道描述的是否明白。
比如我在用webpack开发前端项目的时候,使用类似vue的框架的前端路由。
把打包后的文件直接放在php的服务器上,如果直接访问前端路由的地址,肯定会404。
而在开发时使用webpack-dev-server临时搭建的测试服务器,由于设置了historyApiFallback,使所有跳转都指向了index.html,这样不会404.

问题是如何在php等其他语言的服务器中设置类似historyApiFallback的效果?

回复
阅读 1.6k
4 个回答

配置apache nginx的重写规则啊,既然你是php开发者,你应该知道这是什么。

Nginx配置文件加上:

location / {
  try_files $uri $uri/ /index.html;
}

不知道你说的 historyApiFallback 是什么东西。
前端整套东西跟后端是完全没有关系的。

把打包后的文件直接放在php的服务器上,如果直接访问前端路由的地址,肯定会404。

那是因为“你的 php 服务器”,把访问路径,对应到文件系统目录结构,去找对应的文件的原因呗。你想办法让它无视访问路径,直接响应确定的一个文件内容就好了。(坦白说,这事虽然从协议上看很容易,但是实际项目当中,这样做其实不太现实的,会带来很大麻烦)

当然,更好的办法就是,前端别用路径作“路由”。锚点,参数,都可以,就是别用 path

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏