Điểm:0

Nginx đưa ra lỗi "Không có tệp hoặc thư mục như vậy" cho các tệp tĩnh

lá cờ by

Tôi đang cố gắng triển khai một trang web trên máy chủ linux theo hướng dẫn của Corey Schafer cho Flask.

Trang web của tôi đang hoạt động, nhưng nginx không thể đọc/truy cập/tìm thư mục tĩnh và các tệp bên trong.

Ban đầu, tôi đã xóa kích hoạt trang mặc định và tạo một trang tùy chỉnh:

sudo rm /etc/nginx/sites-enabled/default

Sau đó:

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

Đây là những gì tôi nhập vào tập tin đó:

người phục vụ {
    nghe 80;
    tên_máy chủ DOMAIN_IP;

    vị trí/tĩnh {
        bí danh/Người dùng/tên tôi/VScode/Flask_Blog/flaskblog/static;
    }

    địa điểm / {
        proxy_pass http://localhost:8000;
        bao gồm /etc/nginx/proxy_params;
        proxy_redirect tắt;
    }
}

Nhưng tất cả các trang tĩnh đều trả về 404

Nếu tôi kiểm tra nhật ký lỗi của nginx, tôi thấy:

   2022/06/03 06:09:42 [lỗi] 71064#71064: *1 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/main.css" không thành công (2: Không có tệp hoặc thư mục như vậy) , máy khách: 217.146.83.247, máy chủ: IP, yêu cầu: "GET /static/main.css HTTP/1.1", máy chủ: "IP", liên kết giới thiệu: "http://IP/"
03/06/2022 06:09:42 [lỗi] 71064#71064: *1 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/profile_pics/271fcf0ffe2a92aa.jpg" không thành công (2: Không có tệp như vậy hoặc thư mục), máy khách: 217.146.83.247, máy chủ: IP, yêu cầu: "GET /static/profile_pics/271fcf0ffe2a92aa.jpg HTTP/1.1", máy chủ: "IP", liên kết giới thiệu: "http://IP/"
03/06/2022 06:09:42 [lỗi] 71064#71064: *4 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/profile_pics/default.jpg" không thành công (2: Không có tệp nào như vậy hoặc thư mục), máy khách: 217.146.83.247, máy chủ: IP, yêu cầu: "GET /static/profile_pics/default.jpg HTTP/1.1", máy chủ: "IP", liên kết giới thiệu: "http://IP/"
2022/06/03 06:09:45 [lỗi] 71064#71064: *4 open() "/Users/myname/VScode/Flask_Blog/flaskblog/static/main.css" không thành công (2: Không có tệp hoặc thư mục như vậy) , máy khách: 217.146.83.247, máy chủ: IP, yêu cầu: "GET /static/main.css HTTP/1.1", máy chủ: "IP", liên kết giới thiệu: "http://IP/home"

Vì vậy, tôi có thể thấy rằng nginx đang đi đến đúng vị trí, vì vậy tôi không hiểu tại sao nó lại báo "Không có tệp hoặc thư mục như vậy"

Tôi đã thử cả hai

vị trí/tĩnh {
        bí danh/Người dùng/tên tôi/VScode/Flask_Blog/flaskblog/static;
    }

vị trí/tĩnh {
        gốc/Người dùng/tên tôi/VScode/Flask_Blog/flaskblog;
    }

Và cả hai đều tạo ra cùng một lỗi và cùng một vị trí.

Mình cũng đã down cd'd về rồi done ls tại mỗi điểm để kiểm tra xem mọi thứ có ở đúng vị trí không và mọi thứ có vẻ theo thứ tự

(venv) charles@flask-server:~/Flask_Blog$ ls
bình blog __pycache__ yêu cầu.txt run.py venv
(venv) charles@flask-server:~/Flask_Blog$ cd bình blog
(venv) charles@flask-server:~/Flask_Blog/flaskblog$ ls
lỗi config.py __init__.py mô hình chính.py bài đăng __pycache__ site.db mẫu tĩnh người dùng
(venv) charles@flask-server:~/Flask_Blog/flaskblog$ cd tĩnh
(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: Không phải thư mục
(venv) charles@flask-server:~/Flask_Blog/flaskblog/static$ cd profile_pics
(venv) charles@flask-server:~/Flask_Blog/flaskblog/static/profile_pics$ ls

Và nếu tôi truy cập "/Users/myname/VScode/Flask_Blog/flaskblog/static" trên máy cá nhân của mình thì nó sẽ đến đúng địa chỉ.

Cảm ơn bạn đã giúp đỡ.

Điểm:0
lá cờ ph
Flo

Câu hỏi của bạn thiếu một số thông tin về quyền truy cập thư mục của /Người dùng/tên tôi/VScode/Flask_Blog/. mặc định người dùng tuyên bố trong của bạn nginx.conf nên xác định một cái gì đó như dữ liệu www của người dùng;.

Vì vậy, người dùng này cần có quyền thích hợp đối với thư mục tĩnh của bạn. bạn có thể làm

chown -R dữ liệu www: /Users/myname/VScode/Flask_Blog/flaskblog/static

lá cờ by
Cảm ơn bạn. Tôi có nên nhập nó vào thiết bị đầu cuối không? Tôi đã thử nhập nó vào thiết bị đầu cuối và gặp lỗi tương tự. ```chown: không thể truy cập '/Users/myname/VScode/Flask_Blog/flaskblog/static': Không có tệp hoặc thư mục như vậy```
lá cờ by
Tôi cũng đã thử truy cập thư mục trên máy của mình, nhấp chuột phải, nhấp vào "lấy thông tin" sao chép thẳng vị trí từ đó rồi thực hiện ``` ls /Users/myname/VScode/Flask_Blog/flaskblog/static/main.css`` ` dán trực tiếp vị trí vào và tôi cũng nhận được ```Không có tệp hoặc thư mục như vậy```
Flo avatar
lá cờ ph
Flo
@acodeaday để giúp bạn điều đó, chúng tôi cần thêm thông tin về hệ điều hành của bạn. Bạn đang chạy cái nào? môi trường của bạn được thiết lập như thế nào?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.