Nginx + Django ошибки при загрузке файлов ccs в производство - PullRequest
0 голосов
/ 01 мая 2020

Я видел много похожих постов, но ничто не смогло мне помочь. Браузер выдает мне такую ​​ошибку для всех моих файлов css, когда я загружаю свои данные c. Когда я собираю stati c, он работает нормально, плюс когда я запускаю findstati c, он указывает на правильный каталог. Так что я немного растерялся из-за того, что происходит, потому что мои файлы stati c, кажется, находятся там, где они должны быть, но nginx не может их найти, хотя путь к ним правильный.

GET https://www.exostock.net/staticfiles/vendor/font-awesome/css/font-awesome.min.css net::ERR_ABORTED 404 (Not Found)

и

Home:136 GET https://www.exostock.net/staticfiles/img/logo8.png 404 (Not Found)

Из прочитанной информации и документации django + nginx я не могу определить, где я совершаю ошибку. Я был на этом в течение нескольких дней, и я надеюсь, что кто-то мог видеть то, что я не могу.

nginx / sites-available / app.conf


server {
    server_name  exostock.net www.exostock.net;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/exostocksaas/app.sock;
}
        location /static/ {
        alias /home/ubuntu/exostocksaas/collected_static/;
}
location ~ \.css {
   add_header  Content-Type    text/css;
}
location ~ \.js {
    add_header  Content-Type    application/x-javascript;
}
}

settings.py в django

STATIC_URL = '/staticfiles/'

# STATICFILES_FINDERS = (
#     'django.contrib.staticfiles.finders.FileSystemFinder',
#     )
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'staticfiles')
]

STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')

и мои html ссылки на статику

   <!-- Bootstrap CSS-->
    <link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}">
    <!-- Font Awesome CSS-->
    <link href="{% static 'vendor/font-awesome/css/font-awesome.min.css' %}">
    <!-- Custom Font Icons CSS-->

    <link href="{% static 'css3/font.css' %}">

ОБНОВЛЕНИЕ: я сделал предложенные изменения, но все равно не работает, когда я смотрю на ошибку nginx log, он показывает путь к stati c, следующий

"/usr/share/nginx/html/staticfiles/

, это неправильно, потому что если я go загляну внутрь папки html, то будет только "welcome to * 1036" * "htlm page. Вопрос в том, почему nginx ищет файлы там? Я удалил файл по умолчанию, но журнал ошибок продолжает указывать даже после перезапуска nginx, сервер тоже.

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Я думаю, у вас есть несколько проблем с путаницей в путях, которые вы выбрали. Если вы измените свой nginx app.conf на:

server {
    server_name  exostock.net www.exostock.net;

    location /static/ {
        root /home/ubuntu/exostocksaas;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/exostocksaas/app.sock;
    }
}

Затем измените свой settings.py файл на:

STATIC_URL = '/static/'

# STATICFILES_FINDERS = (
#     'django.contrib.staticfiles.finders.FileSystemFinder',
#     )
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'staticfiles')
]

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Он должен начать правильно обслуживать ваши файлы stati c , Оттуда вы можете начать вносить постепенные изменения в имена путей, когда будете использовать sh, но это стандартная конфигурация, которую я обычно использую для моих развертываний Django.

0 голосов
/ 01 мая 2020
STATIC_DIR = os.path.join(BASE_DIR,'static')

добавить папку static, но по тому же пути, где вы ее используете

положить в папку stati c ваши статические файлы (css, js, ....) и добавьте html

{% load staticfiles %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...