存在しないファイルにアクセスしたらindex.htmlを返す
存在しないファイルにアクセスしたらindex.htmlを返す、というのをnginxとgrunt-contrib-connectで書いた。なにがやりたかったかというとSPAみたいなことを。
nginxの方はテキトーに調べてテキトーに書いた。try_files
はちゃんとファイルパスを書いてあげないと行けないみたいで、ただ/
にしたら駄目だった。
index index.html index.htm;
と上の方に書いてあるので同じことを書いていてあまり良くないというか。
try_files $uri $uri/ /index.html /index.htm;
ついでに、Gruntを使っていてgrunt-contrib-connectでローカルでも確認できるような作りになっていたので、Gruntでも同じ動作になるようにした。
connect:
server:
options:
base: './public'
livereload: true
middleware: (connect, options, middlewares) ->
fs = require('fs')
middlewares.push (req, res, next) ->
fs.createReadStream('./public/index.html').pipe(res)
middlewares
やっていることはただ単純に他のミドルウェアを通り抜けてきたらindex.html
をパイプで渡してるだけ。