Рейтинг:0

Nginx выдает ошибку «Нет такого файла или каталога» для статических файлов

флаг by

Я пытаюсь развернуть сайт на сервере Linux, следуя руководству Кори Шафера для Flask.

Мой сайт работает, но nginx не может прочитать/получить доступ/найти статическую папку и файлы внутри.

Сначала я удалил сайты с поддержкой по умолчанию и создал собственный:

sudo rm /etc/nginx/sites-enabled/по умолчанию

Затем:

sudo nano /etc/nginx/sites-enabled/flaskblog

Вот что я ввожу в этот файл:

сервер {
    слушать 80;
    имя_сервера ДОМЕН_IP;

    местоположение/статический {
        псевдоним /Users/myname/VScode/Flask_Blog/flaskblog/static;
    }

    место расположения / {
        proxy_pass http://localhost:8000;
        включить /etc/nginx/proxy_params;
        прокси_перенаправление выключено;
    }
}

Но все статические страницы возвращают 404

Если я проверю журнал ошибок nginx, я увижу:

   03.06.2022, 06:09:42 [ошибка] 71064#71064: *1 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/main.css" не удалось (2: нет такого файла или каталога) , клиент: 217.146.83.247, сервер: IP, запрос: "GET /static/main.css HTTP/1.1", хост: "IP", реферер: "http://IP/"
03.06.2022 06:09:42 [ошибка] 71064#71064: *1 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/profile_pics/271fcf0ffe2a92aa.jpg" не удалось (2: нет такого файла или каталог), клиент: 217.146.83.247, сервер: IP, запрос: "GET /static/profile_pics/271fcf0ffe2a92aa.jpg HTTP/1.1", хост: "IP", реферер: "http://IP/"
03.06.2022, 06:09:42 [ошибка] 71064#71064: *4 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/profile_pics/default.jpg" не удалось (2: нет такого файла или каталог), клиент: 217.146.83.247, сервер: IP, запрос: "GET /static/profile_pics/default.jpg HTTP/1.1", хост: "IP", реферер: "http://IP/"
03.06.2022, 06:09:45 [ошибка] 71064#71064: *4 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/main.css" не удалось (2: нет такого файла или каталога) , клиент: 217.146.83.247, сервер: IP, запрос: "GET /static/main.css HTTP/1.1", хост: "IP", реферер: "http://IP/home"

Итак, я вижу, что nginx находится в правильном месте, поэтому я не понимаю, почему он говорит «Нет такого файла или каталога».

я пробовал оба

местоположение/статический {
        псевдоним /Users/myname/VScode/Flask_Blog/flaskblog/static;
    }

и

местоположение/статический {
        корень /Пользователи/мое имя/VScode/Flask_Blog/flaskblog;
    }

И оба выдают одну и ту же ошибку и одно и то же местоположение.

Я также сделал компакт-диск, а затем сделал лс в каждой точке проверять, что все на месте и вроде все в порядке

(venv) charles@flask-server:~/Flask_Blog$ ls
flaskblog __pycache__ requirements.txt run.py venv
(venv) charles@flask-server:~/Flask_Blog$ cd flaskblog
(venv) charles@flask-server:~/Flask_Blog/flaskblog$ ls
ошибки config.py __init__.py main models.py сообщения __pycache__ site.db статические шаблоны пользователи
(venv) charles@flask-server:~/Flask_Blog/flaskblog$ cd static
(venv) charles@flask-server:~/Flask_Blog/flaskblog/static$ ls
main.css profile_pics
(venv) charles@flask-server:~/Flask_Blog/flaskblog/static$ cd main.css
-bash: cd: main.css: не каталог
(venv) charles@flask-server:~/Flask_Blog/flaskblog/static$ cd profile_pics
(venv) charles@flask-server:~/Flask_Blog/flaskblog/static/profile_pics$ ls

И если я перейду в «/Users/myname/VScode/Flask_Blog/flaskblog/static» на моей личной машине, он попадет в нужное место.

Спасибо за любую помощь.

Рейтинг:0
флаг ph
Flo

В вашем вопросе отсутствует некоторая информация о разрешениях каталога /Пользователи/мое имя/VScode/Flask_Blog/. По умолчанию пользователь заявление в вашем nginx.conf должен определить что-то вроде www-данные пользователя;.

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

chown -R www-данные: /Users/myname/VScode/Flask_Blog/flaskblog/static

флаг by
Спасибо. Должен ли я ввести это в терминал? Я попытался ввести его в терминал и получил ту же ошибку. ```chown: невозможно получить доступ '/Users/myname/VScode/Flask_Blog/flaskblog/static': нет такого файла или каталога```
флаг by
Я также попытался зайти в папку на своем компьютере, щелкнув правой кнопкой мыши, щелкнув «получить информацию», скопировав местоположение прямо оттуда, а затем сделав «ls /Users/myname/VScode/Flask_Blog/flaskblog/static/main.css». ` вставляю местоположение непосредственно, и я также получаю ```Нет такого файла или каталога```
Flo avatar
флаг ph
Flo
@acodeaday, чтобы помочь вам в этом, нам нужна дополнительная информация о вашей ОС. Какой из них вы работаете? как настроено ваше окружение?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.