Развертывание Vue - Django -графен на NGINX - PullRequest
0 голосов
/ 21 января 2020

Я прошу прощения, если этот вопрос считается ответом, однако кажется, что в моих конкретных c обстоятельствах другие решения не смогли решить мою проблему до сих пор. У меня есть проект django - vue, который использует GraphQL для связи между vue и django.

Я пытаюсь обслуживать свое веб-приложение с помощью uwsgi и NGINX, а также Django часть работает нормально, однако при поиске файлов Vue / dist / stati c возникают некоторые проблемы, например, get http://ip.ip.ip.ip: 8000 / js / app. js ERR_ABORTED 404 То же самое относится и к CSS для приложений и поставщиков чанков.

Это, к сожалению, мое первое развертывание, поэтому мое понимание довольно шатко, однако кажется довольно ясным, что NGINX не понимает пути к папка dist правильно, но варианты, которые я пробовал до сих пор, не смогли заставить ее работать.

mysite_ nginx .conf:

# hubdev_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
    server unix:///srv/hub/hub.sock;
#   server 127.0.0.1:8001;
}

# configuration for the server
server {
    # the port your site will be served on
    listen 8000;
    # the domain name it will serve for
    server_name ip.ip.ip.ip;
    charset utf-8

    root    /srv/hub/frontend/dist/;
    index   index.html;

    # max upload size
    client_max_body_size    75M;    # 'Adjust to taste'

    # Django media
    # none yet

    # Django static - I've tried both of these
    location /static {
    alias /srv/hub/staticfiles;
#   alias /srv/hub/frontend/dist;
    }

    # send all non-media requests to the Django server
    location / {
        uwsgi_pass  django;
        include     /srv/hub/uwsgi_params;
    }
}

Я посмотрел на этот вопрос, который кажется похожим: Обслуживание Django и Vue с Nginx

, но этот раздел одного из ответов не имеет большого смысла с точки зрения как вы объединяете оба пути в один ...

location /static {
        autoindex on;
        alias *path to you static files both django static files and vue related static files*;
    }

urlpatterns в urls.py:

* 102 1 *

Где VUE_ ROOT определено в настройках prod как "\ frontend \ dist" - это прекрасно работает в моей среде windows dev.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 21 января 2020

Ответ, похоже, заключается в создании отдельных местоположений для каждого ресурса, который NGINX не загружается. В моем случае это было добавление:

location /dist {
    alias /srv/hub/frontend/dist;
    autoindex    on;
    }

, которое затем приводило к ошибкам при поиске файлов img, используемых в приложении Vue.

, таким образом:

location /img {
    alias    /srv/hub/frontend/dist/img;
}

Я очень сомневаюсь, что это оптимальная лучшая практика, но она работает сейчас, и я рад, что могу двигаться дальше ...

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