2016-09-16 3 views
0

New flask/nginx/uWSGI server. Загрузка приложений и функции, как ожидалось, но не из шаблонов html/css. Использование инструментов разработчика в Chrome показывает, что страницы не возвращаются.Nginx не загружает статические файлы Flask

"tail -f /var/log/nginx/error.log" говорит, что файл или каталог не существует. Но это, кажется, правильный путь. Полный путь «/opt/netmgmt/app/static/css/main.css»

2016/09/15 22:04:40 [error] 4939#0: *1 open() "/app/static/css/main.css" failed (2: No such file or directory), client: 10.0.0.69, server: , request: "GET /static/css/main.css HTTP/1.1", host: "nms-srv2", referrer: "http://nms-srv2/" 

Колба отладка не показывает проблемы вообще. Ive немного ударился головой об этом, и нашел несколько других потоков с той же проблемой, но ничто не решает это для меня.

Спасибо за помощь!

/etc/nginx/nginx.conf

worker_processes 1; 

events { 

worker_connections 1024; 

} 

http { 

    sendfile on; 

    gzip    on; 
    gzip_http_version 1.0; 
    gzip_proxied  any; 
    gzip_min_length 500; 
    gzip_disable  "MSIE [1-6]\."; 
    gzip_types  text/plain text/xml text/css 
         text/comma-separated-values 
         text/javascript 
         application/x-javascript 
         application/atom+xml; 

    # Configuration containing list of application servers 
    upstream uwsgicluster { 

     server 127.0.0.1:8080; 
     # server 127.0.0.1:8081; 
     # .. 
     # . 

    } 
    # Configuration for Nginx 
    server { 

     # Running port 
     listen 80; 

     # Settings to by-pass for static files 
     location ^~ /static/ { 

      # Example: 
      # root /full/path/to/application/static/file/dir; 
      root /app/; 

     } 

     # Serve a static file (ex. favico) outside static dir. 
     location = /favico.ico { 

      root /app/favico.ico; 

     } 

     # Proxying connections to application servers 
     location/{ 

      include   uwsgi_params; 
      uwsgi_pass   uwsgicluster; 

      proxy_redirect  off; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Forwarded-Host $server_name; 

     } 

App файл (Ive пытался изменения статического местоположение несколькими способами и использовать псевдоним вместо корня не повезло.)

@app.route('/') 
def home(): 
    return render_template('home.html') 

Layout. html

<!DOCTYPE html> 
<html> 
    <head> 
    <title>NetMgmt</title> 
    <strong><link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}"></strong> 
    </head> 
    <body> 
    <header> 
     <div class="container"> 
     <h1 class="logo">NetMgmt (beta)</h1> 
     <strong><nav> 
      <ul class="menu"> 
      <li><a href="{{ url_for('home') }}">Home</a></li> 
     </ul> 
     </nav></strong> 
     </div> 
    </header> 

    <div class="container"> 
     {% block content %} 
     {% endblock %} 
    </div> 
    </body> 
</html> 

ответ

0

В вашей конфигурации nginx используйте абсолютный путь к вашему static. static должно быть на пути:

location ^~ /static/ { 
    root /full/path/to/app/static/; 
} 
+0

Использование "root/opt/netmgmt/app/static /;" Я получаю такую ​​же ошибку, показывая путь "/opt/netmgmt/app/static/static/css/main.css. Использование" root/opt/netmgmt/app /; «он работает в IE, но chrome/FF не с ошибкой». Ресурс интерпретируется как таблица стилей, но передается с типом текста MIME/plain » – that1guy15

Смежные вопросы