vue history模式下进入到index.html 404
访问页面http://xxx/xxx/index可以正常访问
但是访问http://xxx/xxx/index.html 就会跳到404
这个是怎么回事啊
:可不可以访问index.html也能进到首页
回答
首先,你的项目是vue的
那么,index和index.html分别代表的不同路由,一个对一个错当然是正常的
想要index.html也能访问的话你可以把router内添加对应的页面映射就行了,也就是说index和index.html指向同一component
服务器要配置,404 访问指向 index.html。如果是 nginx,用 try_files
即可:
location / {
try_files $uri $uri/ /index.html$args;
}
首先需要说明的是,vue项目打包之后实际上生成的是单页面项目,顾名思义里面只有一个html文件。是为了减少静态文件的请求,减少服务器压力。
以往要加.html实际上是在服务器上面找到html文件并返回到客户端。
但是在vue项目当中不需要这么做,是根据路由的名字进行页面的切换的。根据router文件当中的path进行匹配来跳转的。
所以你要是想要index.html跳转效果和index一样,就得加个配置,path为index.html,重定向到index
如下例
{ path: "/index.html", redirect: { name: "index" } },
{
path: "/index",
name: "index",
component: () => import("@/views/index")
},