Score:0

Nginx ให้ข้อผิดพลาด "ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว" สำหรับไฟล์สแตติก

ธง by

ฉันกำลังพยายามปรับใช้ไซต์บนเซิร์ฟเวอร์ linux ตามคำแนะนำของ Corey Schafer สำหรับ Flask

เว็บไซต์ของฉันใช้งานได้ แต่ nginx ไม่สามารถอ่าน/เข้าถึง/ค้นหาโฟลเดอร์สแตติกและไฟล์ภายในได้

ในตอนแรกฉันได้ลบไซต์เริ่มต้นที่เปิดใช้งานและสร้างไซต์ที่กำหนดเอง:

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

แล้ว:

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

นี่คือสิ่งที่ฉันป้อนลงในไฟล์นั้น:

เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name DOMAIN_IP;

    ตำแหน่ง / คงที่ {
        นามแฝง /Users/myname/VScode/Flask_Blog/flaskblog/static;
    }

    ที่ตั้ง / {
        proxy_pass http://localhost:8000;
        รวม /etc/nginx/proxy_params;
        ปิด proxy_redirect;
    }
}

แต่หน้าคงที่ทั้งหมดกลับ 404

หากฉันตรวจสอบบันทึกข้อผิดพลาดของ nginx ฉันเห็น:

   2022/06/03 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/"
2022/06/03 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/"
2022/06/03 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/"
2022/06/03 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;
    }

และ

ตำแหน่ง / คงที่ {
        รูท /Users/myname/VScode/Flask_Blog/flaskblog;
    }

และทั้งคู่สร้างข้อผิดพลาดเดียวกันและตำแหน่งเดียวกัน

ฉันยังลงซีดีแล้วทำ ในแต่ละจุดเพื่อตรวจสอบว่าทุกอย่างอยู่ในตำแหน่งที่ถูกต้องและทุกอย่างดูเรียบร้อย

(venv) charles@flask-server:~/Flask_Blog$ ls
flaskblog __pycache__ ความต้องการ txt run.py venv
(venv) charles@flask-server:~/Flask_Blog$ cd กระติกน้ำบล็อก
(venv) charles@flask-server:~/Flask_Blog/flaskblog$ ls
ข้อผิดพลาด config.py __init__.py หลัก models.py โพสต์ __pycache__ ผู้ใช้เทมเพลตคงที่ site.db
(venv) charles@flask-server:~/Flask_Blog/flaskblog$ ซีดีคงที่
(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$ ซีดี profile_pics
(venv) charles@flask-server:~/Flask_Blog/flaskblog/static/profile_pics$ ls

และถ้าฉันไปที่ "/Users/myname/VScode/Flask_Blog/flaskblog/static" บนเครื่องส่วนตัวของฉัน มันจะไปยังตำแหน่งที่ถูกต้อง

ขอบคุณสำหรับความช่วยเหลือใด ๆ

Score:0
ธง ph
Flo

คำถามของคุณไม่มีข้อมูลบางอย่างเกี่ยวกับการอนุญาตไดเรกทอรีของ /Users/myname/VScode/Flask_Blog/. ค่าเริ่มต้น ผู้ใช้ งบของคุณ nginx.conf ควรกำหนดสิ่งที่ชอบ ผู้ใช้ www-data;.

ดังนั้นผู้ใช้รายนี้จำเป็นต้องมีสิทธิ์ที่เหมาะสมในโฟลเดอร์สแตติกของคุณ คุณสามารถทำได้

chown -R www-data: /Users/myname/VScode/Flask_Blog/flaskblog/static

by flag
ขอขอบคุณ. ฉันควรป้อนข้อมูลนั้นลงในเทอร์มินัลหรือไม่ ฉันลองป้อนลงในเทอร์มินัลและพบข้อผิดพลาดเดียวกัน ```chown: ไม่สามารถเข้าถึง '/Users/myname/VScode/Flask_Blog/flaskblog/static': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว```
by flag
ฉันยังลองไปที่โฟลเดอร์ในเครื่องของฉัน คลิกขวา คลิก "รับข้อมูล" เพื่อคัดลอกตำแหน่งโดยตรงจากนั้นทำ ```ls /Users/myname/VScode/Flask_Blog/flaskblog/static/main.css`` ` วางตำแหน่งโดยตรงและฉันยังได้รับ ``` ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว ```
Flo avatar
ph flag
Flo
@acodeaday เพื่อช่วยคุณในเรื่องนี้ เราต้องการข้อมูลเพิ่มเติมเกี่ยวกับระบบปฏิบัติการของคุณ คุณกำลังวิ่งตัวไหนอยู่? สภาพแวดล้อมของคุณเป็นอย่างไร?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา