我正在使用nginx来服务我的react应用程序,它可以很好地将除静态文件以外的所有内容重定向到index.html,如下所示:
location / {
try_files $uri /index.html =404;
}
我对此已经满意了一段时间,但是注意到当服务器上某些图像和javascript文件不可用时,将改为提供index.html。这本身不是问题。
但是,在应用程序之前添加缓存层时,它会缓存所有这些结果,因为它们确实具有200作为状态代码。
我要提供的是静态文件,并将其他请求以 结尾的某些扩展名(.js,.css,.png,.jpg,.gif等)重定向到index.html。 ...)
例如
http://example.com/some/path -> /index.html
http://example.com/existing-file.doc -> /existing-file.doc
http://example.com/some/non-existing-image.png -> 404 error
因此,http://example.com/main.1234.js
之类的地址将返回js文件(如果存在),否则返回404响应,从不index.html
我应该制作一个正则表达式块,例如:
location ~ \.js$|\.css$|\.png$|\.jpg$ {
what do I write here?
}
我不确定如何最好地解决这个问题。
答案 0 :(得分:1)
将块保留为空是完全有效的,它将从周围的块继承root
和index
的值。空位置块的默认操作类似于try_files $uri $uri/ =404;
您可能还想简化正则表达式,例如:
location ~ \.(js|css|png|jpg)$ {
}