A webhely statikájának összekapcsolása egy gyártókiszolgálóval

  • Linux
  • piton
  • Django

A kérdés lényege a címben. Telepítem a helyi gépre Ubuntuban. Míg a feladat elvégzése a következő:

A settings.py egy új könyvtárat regisztráltam a statikában:
STATIC_ROOT = '/ opt / mag / statikus /'

De amikor megpróbálom összeállítani a statikát:
python manage.py collectstatic


Ugyanezzel a paranccsal futtathatsz sudo-on - egy görbe döntés: és ha konkrétan erre a projektre volt külön csomagok?

A projektben a statika (mint az anton belül bármely mappában) normálisan kicsomagolva van.
Ugrás a nginx beállítások mappájára:
cd / etc / nginx / sites-available /

Nyissa meg az alapértelmezett fájlt, és adja hozzá a következőket:

Eredmény a konzolban:
(mag_env) anton @ anton-X451CA:

Amint láthatja, a statikus még mindig nincs betöltve. Ha a projektet a python manage.py runerver segítségével futtatja, nincs statikus probléma.
Mit kell tenni?

Az utasítások szerint állítottam fel, és megpróbáltam mindkét változatot megvizsgálni:
gunicorn magazine_project.wsgi
gunicorn magazine_project.wsgi: application --bind 192.168.10.4:8000

Lépésről lépésre leírom, mi történik, miközben mindent megteszek az utasítások szerint.

Kezdetben a már létrehozott Django-projekt, amely megfelelően működik keresztül python manage.py runserver, így kihagyja környezeti beállítások és alkalmazások. Csak abban az esetben megjegyzem:
STATIC_ROOT = os.path.join (BASE_DIR, 'statikus')

Szóval, amit az utasításoknak megfelelően teszek.

Létrehozom a /etc/systemd/system/gunicorn.service fájlt, és elküldem a következő adatokat:


Furcsa módon, de a második csapat hibák nélkül dolgozott:


Remélem, ez az eredmény szükséges. By the way, a magazine.sock fájl megjelent a projekt mappában.

Továbbá parancsokat írok fel:
sudo systemctl daemon-reload
sudo systemctl restart gunicorn

Ezután megyek az / etc / nginx / sites_available könyvtárba, és javítom az alapértelmezett fájlt, így ezek a paraméterek:


Linket hozok létre a site_enabled linkben:
sudo ln -s / etc / nginx / sites-available / alapértelmezett / etc / nginx / sites-enabled

A sudo nginx -t azt mutatja, hogy minden engedélyezett, sikeres és általában jó. A többiet írom le:
sudo systemctl restart nginx
sudo ufw törlés engedélyezése 8000
sudo ufw engedélyezi a 'Nginx Full'

Csak ennyit tettem. A statikus még mindig nem működik, ha megpróbálja összekapcsolni a webhelyet az IP-jével, nem pedig a helyi gazda felé. Mi hiányzik?

minden egyszerûbbnek bizonyult. Nem biztos, hogy ez az, amit segített, mert én egy csomó dolgot egyszerre, de popzrevayu, ez mind a Hozzáadás statika urls.py

urlpatterns = [
url (r '^ admin /', admin.site.urls),
url (r '^ cart /', tartalmazzák ('shop_cart.urls', namespace = 'cart'))
url (r '^ order /', tartalmazzák ('orders.urls', namespace = 'megrendelések')),
url (r '', include ('main_site.urls')),
] + statikus (settings.MEDIA_URL, document_root = beállítások.MEDIA_ROOT) \
+ statikus (settings.STATIC_URL, document_root = beállítások.STATIC_ROOT)

Korábban csak a hozzáadott médiát.

Kapcsolódó cikkek