nginx: отправка всех запросов на одну html-страницу
используя nginx, я хочу сохранить url, но на самом деле загрузить ту же страницу, несмотря ни на что. Я буду использовать url с History.getState()
для маршрутизации запросов в моем приложении javascript. Кажется, что это должно быть просто сделать?
location / {
rewrite (.*) base.html break;
}
работает,но перенаправляет url? Мне все еще нужен url, я просто хочу всегда использовать одну и ту же страницу.
6 ответов:
Через просто
try_files
не работает для меня - это вызвало переписать или внутренний цикл перенаправления ошибка в моих журналах.в документах Nginx были некоторые дополнительные сведения:
http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
Так что я в конечном итоге с помощью следующего:
root /var/www/mysite; location / { try_files $uri /base.html; } location = /base.html { expires 30s; }
ваш оригинальный переписать должен почти работать. Я не уверен, почему это будет перенаправление, но я думаю, что вы действительно хотите просто
rewrite ^ /base.html break;
вы должны быть в состоянии поместить это в местоположение или непосредственно на сервере.
это сработало для меня:
location / { alias /path/to/my/indexfile/; try_files $uri /index.html; }
Это позволило мне создать универсальный URL-адрес для одностраничного приложения javascript. Все статические файлы, такие как css, шрифты и javascript, созданные
npm run build
будут найдены, если они находятся в том же каталоге, что иindex.html
.если статические файлы были в другом каталоге, по какой-то причине, вам также нужно что-то вроде:
# Static pages generated by "npm run build" location ~ ^/css/|^/fonts/|^/semantic/|^/static/ { alias /path/to/my/staticfiles/; }