站点几乎完全包含在一个 html 文件中。所有其他文件可能是图像、css 或 javascripts,也可能是 json 文件。
server {
listen 80;
server_name git.vosnax.ru;
location / {
try_files $uri "/index.html";
root /home/sybiam/prod/blog;
index index.html;
}
}
这是我目前的配置,但这并不完美。它会将每个请求重定向到 index.html ,除非该文件存在,这是可以的。
由于某些原因,它删除了 GET 参数。我想保留它们,因为我可以在 javascript 中使用它们。
现在,我想为该站点添加一些持久性。就像使用非常简单的身份验证从服务器保存和加载 json 一样,它支持 GET 和 POST。这意味着我不能使用JSONP
.
问题仅在于如何配置 nginx 以将所有请求转发/api/*
给我的金字塔 Web 服务器以及其他所有请求到 index.html,除非该文件存在。
我可能可以将服务器托管在不同的域上以使事情变得更容易,但我不知道如何处理跨域请求。CORS
旧 IE 不支持。
编辑:
显然查询参数总是可用的,所以这不再是问题了。我的 javascript 在加载时覆盖了路径名并删除了window.location.search
.