django: Обслуживание статических файлов через nginx

Я использую apache+mod_wsgi для django.
И все css/js/images подаются через nginx.
По некоторой нечетной причине, когда другие/друзья/коллеги пытаются получить доступ к сайту, jquery/css не становится загруженным для них, следовательно страница выглядит смешанной.

Мои файлы HTML используют код как это -

<link rel="stylesheet" type="text/css" href="http://x.x.x.x:8000/css/custom.css"/>
<script type="text/javascript" src="http://1x.x.x.x:8000/js/custom.js"></script>

Моя nginx конфигурация в sites-available похож на это -

    server {   
         listen   8000;   
         server_name  localhost;

         access_log  /var/log/nginx/aa8000.access.log;    
         error_log  /var/log/nginx/aa8000.error.log;    

           location / {   
               index  index.html index.htm;    
           }    

         location /static/ {    
            autoindex on;    
            root   /opt/aa/webroot/;    
         }    
     }   

Существует каталог /opt/aa/webroot/static/ которые имеют соответствующий css & js каталоги.

Нечетная вещь состоит в том, что шоу страниц, прекрасное, когда я получаю доступ к ним.
Я очистил свой кэш/и т.д., но загрузки страницы, прекрасные для меня, от различных браузеров.

Кроме того, я не вижу 404 ошибок в nginx файлах журнала.

Любые указатели были бы большими.

37
задан sikerbela 7 April 2018 в 20:56
поделиться

2 ответа

  1. имя_сервера должно соответствовать имени хоста в URL ссылки / скрипта . Либо объявите свою конфигурацию по умолчанию для этого интерфейса: пара портов ( прослушивание 8000 по умолчанию )
  2. Nginx должен прослушивать интерфейс, к которому привязан IP-адрес вашего хоста (в вашем случае это нормально)
15
ответ дан 27 November 2019 в 04:13
поделиться

Fim & Alexander - Спасибо за подсказки, которые помогли.
Вот как я решил эту проблему для тех, кто застрял в той же лодке -

settings.py -

>MEDIA_ROOT = ''    
MEDIA_URL = 'http://x.x.x.x:8000/static/'    

В моем html -

<script type="text/javascript" src="{{MEDIA_URL}}js/jquery-1.3.2.min.js"></script>

В моих views. py -

return render_to_response('templates/login-register.html', {},
                          context_instance=RequestContext(request));    

nginx внутри конфигурационного файла sites-available -

listen x.x.x.x:8000;    
server_name x.x.x.x.;

Перезапустил nginx
Перезапустил apache

3
ответ дан 27 November 2019 в 04:13
поделиться