Вопрос

Я пытаюсь развернуть приложение Django на мой VPS. Поэтому я последовал за несколькими учебниками и единственным вопросом, у меня есть, это то, что я не могу получить свои статические файлы для появления. Поэтому ниже вы можете найти структуру моих файлов на VPS.

    .
  • Виртуальная завивка: / opt / myApps /
  • Django Project: / opt / myApps / Uniprogress /
  • Статические файлы: / opt / myApps / Uniprogress / Static /

nginx config: / etc / nginx / fitsies / ustate / uniprogress

server {
    server_name 188.xxx.xxx.93;

    access_log off;

    location /static/ {
        alias /opt/myapps/uniprogress/static/;
    }

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
    }
}
.

и, наконец, в моих django settings.py:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

# Template Dirs

TEMPLATE_DIRS = (
    os.path.join(SETTINGS_PATH, 'templates'),
)

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_ROOT = '/opt/myapps/uniprogress/static/'
STATIC_URL = '/static/'
.

Я также использовал: python manage.py collectstatic, но все же мои статические файлы не будут отображаться.

<Сильное> Обновление Учебник, который я использовал, можно найти на Цифровой океан .

Я дважды проверил, что файлы существуют на сервере.

Также я могу получить доступ к статическим файлам, как: http://188.xxx. XXX.93 / Static / CSS / Bootstrap.csss .

Но в моем исходном коде http://188.xxx.xxx .93: 8001 / , это связывает статические файлы с помощью порта.

Это означает: <link href="/static/css/bootstrap.css" rel="stylesheet">

Так пытается найти bootstrap.css atttp://188.xxx.xxx.93" rel="nofollow"> http://188.xxx.xxx.93 : 8001 /static/bootstrap.css и файл не существует (приходится удалять сообщение, чтобы сделать его работать).

Это было полезно?

Решение

Для обслуживания статических файлов сделайте это в уровне Nginx, как

server {
server_name 188.xxx.xxx.93;

access_log off;

location ~ ^/(static)/  {
  #  root:- you static files path
  #  alias /opt/myapps/uniprogress/static/;
     root /opt/myapps/uniprogress/static/;
}

location / {
    proxy_pass http://127.0.0.1:8001;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
.

Теперь все статические файлы будут служить из вашей Nginx.

Другие советы

Ваш Static_root собирает статические файлы по адресу:

/ opt / myApps / Uniprogress / opt / myApps / Uniprogress / Static /

Это не соответствует конфигурации вашего сервера, какие точки на:

opt / myApps / Uniprogress / Static /

Static_root - это просто папка, которая содержит все ваши статические файлы (изображения, CSS, все) в одном месте для развертывания, поэтому установите его на что-то вроде «/ Collected_Static /» и исправить конфигурацию сервера.

Проверьте это дела

1 Если статическое статическое доступно на Nginx, я имею в виду разрешение папки.

2 или сделайте это

Заменить это:

STATIC_ROOT = '/opt/myapps/uniprogress/static/'
.

с этим

STATIC_ROOT = ''
.

и добавьте это в настройки

STATICFILES_DIRS = (
     '/opt/myapps/uniprogress/static/',
)
.

Надеюсь, это работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top