У меня есть nginx.conf, который выглядит следующим образом:
server {
...
root /var/opt/data/web;
...
location ~* \.(?:eot|woff|woff2|ttf|js)$ {
expires 1M;
}
...
location /one {
root /var/opt/data/alternatives;
try_files $uri $uri/ =404;
}
location /two {
root /var/opt/data/alternatives;
try_files $uri $uri/ =404;
}
}
, когда я curl http://localhost/one/
Я получаю содержимое index.html
, хранящееся в /other
.Но когда я скручиваю .../localhost/one/foo.js
файл не найден, и я получаю это в файле error.log:
open () "/default/foo.js" не удалось (2: такого файла нет иликаталог)
Я пробовал другие варианты, такие как location ~ (one|two)
, location /one/
или даже location ~ /(one|two)
, но все они не работали.
Полная конфигурация состоит из гораздо большего числа location
с, но я предполагаю, что причиной моей проблемы является местоположение, в котором я установил .js
ресурсы на expire -1
, потому что это предотвращает изменение корня на что-либоМне нужно.
Если это имеет значение: я использую nginx 1.15.2.Если вам интересно, почему у меня есть этот странный каталог alternatives
: каталог web
создается программным обеспечением CMS, а alternatives
- git pull
ed.