2015-07-28 28 views
5

Bu yapıyla bir web uygulamasını ettik: demek,Nginx kullanarak Flask statik dosyaları nasıl sunulur?

| 
|__ static 
    |__style.less 
    |__images 
|__ myapp.py 
|__ wsgi.py 

ben nginx ve WSGI kullanarak web uygulamayı çalıştırmak için idare ettik, ancak sorun statik dosyalar sunulmaz yani, sunucu URL’lerine gittiğimde onları bulamıyorum. Bu İşte bana 404.

verir benim nginx yapılandırma dosyası parçası: Eksik bir şey

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 

    root /var/www/public_html; 
    index index.php index.html index.htm; 

    server_name xxxxxxx.com; 

    location/{ 
     try_files $uri $uri/ =404; 
    } 

    location /myapp { 
     include uwsgi_params; 
     uwsgi_pass unix:/var/www/public_html/myapp/myapp.sock; 
} 

var mı?

cevap

9

sizin uygulamanın mutlak yolu ile /project_path/ yerine sizin nginx yapılandırma

location ^~ /static/ { 
    include /etc/nginx/mime.types; 
    root /project_path/; 
} 

bu eklersen /project_path/static/ yılında serverd edilecektir içeride o statik dizin ve tüm içeriğini içermez unutmamalıdır url /static/.

+1

Teşekkürler, kodunuz işe yaradı, ancak şu anda şablonların web sitesinde çalışmadığını görüyorum (sadece bana her zaman oluşturduğum 404.html şablonunu gösteriyor ve diğerini kullanmıyor Şablonlar dizini içindeki şablonlar – Madno

+1

Şablonların statik klasör içinde olup olmadığından emin olun. –

+1

https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#root-inside-location-block –

İlgili konular