@PedroGarciyaLopez

Nginx, можно ли «отдать» css и js-скрипты из другой директории?

Nginx стоит на локальной машине, исключительно в целях разработки, не продакшен.
Идет работа над двумя проектами, оба лежат в /usr/share/nginx/html, т.е.:

Проект 1 лежит: в /usr/share/nginx/html/project1
Проект 2 лежит: в /usr/share/nginx/html/project2

и доступны по http://localhost/project1 и http://localhost/project2 соответственно.

js-скрипты и css расположены в корне проектов projectN/js и projectN/css

простой конфиг:
server {
    listen 80;

    server_name localhost;

    root /usr/share/nginx/html;

	 index index.html index.htm index.php;

	 location ~* \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	 }

	 location /project1/ {
		 try_files $uri $uri/ /project1/back/index.php;
	 }

	 location /project2/ {
		 try_files $uri $uri/ /project2/index.php;
	 }
}


при запросе http://localhost/project1/page1 отдается html, в котором стили подключены вот так:
<link href="css/styles.css" rel="stylesheet">
естественно браузер их начинает требовать по адресу: http://localhost/project1/page1/css/styles.css

Можно ли настроить конфигурацию так, чтобы сервер, получая такие запросы, искал css и js там где они лежат?
Если да, то как?

Огромная просьба не посылать меня в мануал. Согласен, что лучше самому вникнуть и разобраться раз и на всегда. Но сейчас мне не до этого. Заранее благодарю за помощь.
  • Вопрос задан
  • 1382 просмотра
Пригласить эксперта
Ответы на вопрос 1
@redamo
location /project1/ {
try_files $uri $uri/ /project1/back/index.php;
location ~* \.(js|jpg|png|css)$ {
root /usr/share/nginx/html/project1;
expires 30d;
}
}

location /project2/ {
try_files $uri $uri/ /project2/index.php;
location ~* \.(js|jpg|png|css)$ {
root /usr/share/nginx/html/project2;
expires 30d;
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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