nginx配置content-type问题

vue项目打包后生成static目录和一个index.html
然后我把这两个文件发到线上

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

通过上面的代码,让vue中定义的路由全指到index.html
这样网站可以显示,但是无法获取后台json数据
原因如下:
nginx中mime_types文件中配置

type {
    text/html html
}
// 即所有后缀为html的文件的content-type都为text/html

因为所有路由都指向index.html,所以没有后缀的例如/api/articles的路由都指向index.html,所以响应头content-type都为text/html,但是我想获取的是application/json

求解,谢谢!

阅读 15.9k
2 个回答

可以为提供josn的API配置一个location啊,看到你在知乎上问我,
比如说 location api/

location /api {
    try_files $uri $uri/ /index.json;
}

不过,为什么要弄这么奇葩的配置……

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