Во-первых, извините за название.
Я развернул свое фляжное приложение через дроплет Digital Ocean, но возникла проблема, когда начальная загрузка не загружалась. Я уже искал в Интернете эту проблему и пробовал несколько способов, но не работал.
Ниже приведен фрагмент моего кода.
index.html
<!DOCTYPE html>
<head>
....
....
<link rel="icon" href="../static/icon/favicon.ico">
<link href="../static/css/bootstrap.min.css" rel="stylesheet">
<link href="../static/css/jumbotron.css" rel="stylesheet">
...
...
</head>
ссылка для значка отлично работает, а для файла css - нет.
просмотры.py
@app.route('/')
def index():
return render_template('index.html')
/etc/nginx/сайты доступны/webapptest
server {
listen 80;
server_name <droplet_ip_address>;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/user1/project/webapptest/webapptest.sock;
}
location ^~ /static {
root home/user1/project/webapptest/app/static;
}
}
Я следую этому руководство по размещению моего приложения в digitalocean. Я надеюсь, что, возможно, кто-то из вас поможет мне решить эту проблему. Я считаю, что должен был что-то оставить из этого кода, но я не знаю, где.
Ошибка выглядит так, когда я проверял с помощью инструментов разработчика в Google Chrome:
failed to load resource:the server responded with a status of 404 (Not Found) http://<droplet ip address>/static/css/bootstrap.min.css
Спасибо за помощь.
root
нужен абсолютный путь к каталогу, поэтому ваш должен читаться как/home/user1/project/webapptest/app/static;
(обратите внимание на начальный слэш), затем вам понадобится директиваtry_files
, чтобы сообщить NGINX, что нужно попробовать как файл, а затем как каталог , а затем вернуться к чему-тоtry_files $uri $uri/ @fallback;
Другой способ обойти это — использоватьalias
вместоroot
, напримерalias /home/user1/project/webapptest/app/static/;
(обратите внимание на косую черту в начале и в конце) - person Keenan Lawrence   schedule 14.11.2016