Cum se conectează statica site-ului la un server de producție

  • Linux
  • piton
  • Django

Esența chestiunii din titlu. Se instalează pe mașina locală cu Ubuntu. În timp ce pentru sarcină se efectuează următoarele:







Am înregistrat în settings.py un director nou pentru statica:
STATIC_ROOT = '/ opt / mag / static /'

Dar când încerc să compilesc statica:
python manage.py collectstatic


Rulați aceeași comandă prin sudo - o decizie strâmbă: și dacă aș avea în mod special pentru acest proiect versiuni speciale ale pachetelor?

În proiect, statica (ca în orice dosar din interiorul antonului) este despachetată în mod normal.
Accesați dosarul de setări nginx:
cd / etc / nginx / site-uri disponibile /

Deschideți fișierul implicit și adăugați următoarele:

Rezultat în consola:
(mag_env) anton @ anton-X451CA:

După cum puteți vedea, staticul nu este încă încărcat. Când rulați proiectul prin intermediul runthrough-ului python manage.py, nu există o problemă statică.
Ce ar trebui făcut?

Am instalat în conformitate cu instrucțiunile și am încercat să testez ambele variante la rândul lor:
gunicorn magazine_project.wsgi
gunicorn magazine_project.wsgi: aplicație - legătură 192.168.10.4:8000

Pas cu pas voi descrie ce se întâmplă în timp ce fac totul conform instrucțiunilor.







La început, există deja un proiect personalizat Django care funcționează bine prin runerul manage.py de pe python, așa că am sărind faza de configurare a mediului și a aplicației. Doar în caz, voi sublinia:
STATIC_ROOT = os.path.join (BASE_DIR, "static")

Deci, ce fac eu conform instrucțiunilor.

Creez /etc/systemd/system/gunicorn.service și trimiteți următoarele date:


Ciudat, dar a doua echipă a lucrat fără erori:


Sper că este necesar un astfel de rezultat. Apropo, fișierul magazine.sock a apărut în dosarul proiectului.

Mai mult, eu prescriu comenzi:
sudo systemctl daemon-reload
sudo systemctl reporni gunicorn

După aceea, mă duc la / etc / nginx / sites_available și am corectat fișierul implicit, făcând acești parametri:


Creez un link în site_enabled:
sudo ln -s / etc / nginx / site-uri disponibile / implicit / etc / nginx / site-enabled

sudo nginx-t arată că totul este activat, reușit și în general bun. Îți prescriu restul:
sudo systemctl restart nginx
sudo ufw delete permite 8000
sudo ufw permite 'Nginx Full'

Asta-i tot ce am făcut. Încă static nu funcționează dacă încercați să conectați site-ul la IP, nu la gazda locală. Ce lipsește?

totul sa dovedit a fi mai simplu. Nu sunt sigur că acest lucru a ajutat, pentru că am făcut o mulțime de lucruri la un moment dat, dar îmi pare rău că totul este în plus față de statica în urls.py

urlpatterns = [
url (r '^ admin /', admin.site.urls),
url (r '^ cart /', include ('shop_cart.urls', namespace = 'cart'))
url (r '^ order /', include ('orders.urls', namespace = 'orders'))
url (r '', include ('main_site.urls')),
] + static (setări.MEDIA_URL, document_root = setări.MEDIA_ROOT) \
+ static (setări.STATIC_URL, document_root = setări.STATIC_ROOT)

Anterior, numai media a fost adăugată.







Articole similare

Trimiteți-le prietenilor: