Я пытаюсь обслуживать статический контент с конечной точки, иерархическая структура которой отличается от фактической структуры корневого каталога. Вот результат, которого я пытаюсь достичь:
0.0.0.0/Claw/scripts/main.js -> /home/ubuntu/Claw/public/scripts/main.js
Я использую следующую конфигурацию Nginx:
location ~ ^/Claw/(images/|styles/|scripts/) {
root /home/ubuntu/Claw/public;
access_log off;
expires max;
}
Это не удается, поскольку /home/ubuntu/Claw/public/Claw/scripts/main.js
не существует. Поэтому мне нужно удалить префикс Коготь с места внутри. Как я могу это сделать?
Мне нужна эта структура, чтобы я мог размещать несколько приложений Node с разных конечных точек в одном домене.
Попробуй это:
location ~ ^/Claw/(?<subdir>images|styles|scripts)/(?<file>.*) {
alias /home/ubuntu/Claw/public/$subdir/$file;
access_log off;
expires max;
}
Кажется, что nginx не передает переменные, захваченные в пронумерованные переменные из location
директива внутрь блока. Когда переменным даны имена, они работают.
Вы могли бы использовать alias
директива для этого.
location ~ ^/Claw/(images|styles|scripts)/ {
alias /home/ubuntu/Claw/public/$1/;
access_log off;
expires max;
}