Sanu0074
@Sanu0074

Как заставить NGINX работать с несколькими директориями статических файлов?

Есть две директории /test/app/dist/images и /test/vendor/static.
В обеих могут лежать статические файлы. Если в URL картинки содержится сегмент "/static", то nginx должен искать такую картинку в директории /test/vendor/static, а если URL просто заканчивается на .jpg, .png и проч то nginx такой файл должен искать в директории /test/app/dist/images.
Я написал такой конфиг:
server {
	listen *:12901;
	server_name test.lan;	

	location / { 
		proxy_pass http://lan_nodes;
		//....
	}
	
	
	location ~* /static/*\.(jpg|jpeg|gif|png|webp|ico|css|bmp|swf|js|html|txt|ejs|json) {
		root /test/app/dist/images;
		expires 10d;
	}
	
	
	location ~* \.(jpg|jpeg|gif|png|webp|ico|css|bmp|swf|js|html|txt|ejs|json)$ {
		root /test/vendor/static;
		expires 10d;
	}

}


Но при попытке обратиться по адресу "test.lan/static/img/test/43a398b30dd39fc56ce97898758b4776.png" получаю 404 ошибку. Подскажите как правильно настроить nginx для такого случая?
  • Вопрос задан
  • 408 просмотров
Решения вопроса 1
@dodo512
server {
  listen *:12901;
  server_name test.lan;	

  location / { 
    proxy_pass http://lan_nodes;
    //....
  }
  
  
  location ~ ^/static/.*\.(jpg|jpeg|gif|png|webp|ico|css|bmp|swf|js|html|txt|ejs|json)$ {
    root /test/vendor;
    expires 10d;
  }
    
    
  location ~ \.(jpg|jpeg|gif|png|webp|ico|css|bmp|swf|js|html|txt|ejs|json)$ {
    root /test/app/dist/images;
    expires 10d;
  }

}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
selivanov_pavel
@selivanov_pavel
Linux admin
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы