คำถามติดแท็ก static-files

17
วิธีการให้บริการไฟล์คงที่ใน Flask
ดังนั้นนี่น่าอาย ฉันมีแอปพลิเคชันที่ฉันได้รวมเข้าด้วยกันFlaskและตอนนี้มันเป็นเพียงการให้บริการเพจ HTML แบบสแตติกเดียวที่มีลิงก์ไปยัง CSS และ JS และฉันไม่สามารถหาได้ที่ไหนในเอกสารFlaskอธิบายการคืนไฟล์ ใช่ฉันสามารถใช้render_templateแต่ฉันรู้ว่าข้อมูลไม่ได้ถูกทำให้เป็นเทมเพลต ฉันคิดsend_fileหรือurl_forเป็นสิ่งที่ถูกต้อง แต่ฉันไม่สามารถทำงานได้ ในระหว่างนี้ฉันกำลังเปิดไฟล์อ่านเนื้อหาและจัดการResponseกับ mimetype ที่เหมาะสม: import os.path from flask import Flask, Response app = Flask(__name__) app.config.from_object(__name__) def root_dir(): # pragma: no cover return os.path.abspath(os.path.dirname(__file__)) def get_file(filename): # pragma: no cover try: src = os.path.join(root_dir(), filename) # Figure out how flask returns …

5
จะตั้งค่าโครงการ Django ด้วย django-storages และ Amazon S3 ได้อย่างไร แต่มีโฟลเดอร์ต่างกันสำหรับไฟล์คงที่และไฟล์มีเดีย
ฉันกำลังกำหนดค่าโครงการ Django ที่ใช้ระบบไฟล์เซิร์ฟเวอร์เพื่อจัดเก็บไฟล์คงที่ของแอป ( STATIC_ROOT) และไฟล์ที่ผู้ใช้อัปโหลด ( MEDIA_ROOT) ตอนนี้ฉันต้องการโฮสต์เนื้อหาทั้งหมดใน S3 ของ Amazon ดังนั้นฉันจึงสร้างที่เก็บข้อมูลสำหรับสิ่งนี้ เมื่อใช้django-storagesกับbotoแบ็กเอนด์ที่เก็บข้อมูลฉันจัดการเพื่ออัปโหลดสถิติที่รวบรวมไปยังที่เก็บ S3: MEDIA_ROOT = '/media/' STATIC_ROOT = '/static/' DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' AWS_ACCESS_KEY_ID = 'KEY_ID...' AWS_SECRET_ACCESS_KEY = 'ACCESS_KEY...' AWS_STORAGE_BUCKET_NAME = 'bucket-name' STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' จากนั้นฉันพบปัญหา: MEDIA_ROOTและSTATIC_ROOTไม่ได้ใช้ภายในที่เก็บข้อมูลดังนั้นที่เก็บข้อมูลรูทจึงมีทั้งไฟล์คงที่และเส้นทางที่ผู้ใช้อัปโหลด ดังนั้นฉันจึงสามารถตั้งค่า: S3_URL = 'http://s3.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME STATIC_URL = S3_URL + STATIC_ROOT MEDIA_URL …

4
จุดรวมของ Django คืออะไร?
นี่อาจเป็นคำถามโง่ ๆ แต่ก็ไม่ได้คลิกเข้ามาในหัวของฉัน ใน Django, การประชุมคือการวางไฟล์ทั้งหมดของคุณคงที่ (เช่น CSS, js) เฉพาะแอปของคุณลงในโฟลเดอร์ที่เรียกว่าแบบคงที่ ดังนั้นโครงสร้างจะมีลักษณะดังนี้: mysite/ manage.py mysite/ --> (settings.py, etc) myapp/ --> (models.py, views.py, etc) static/ ในmysite/settings.pyฉันมี: STATIC_ROOT = 'staticfiles' ดังนั้นเมื่อฉันรันคำสั่ง: python manage.py collectstatic สร้างโฟลเดอร์ที่เรียกว่าstaticfilesระดับราก (เช่นเดียวกับไดเรกทอรีmyapp/) ประเด็นนี้คืออะไร? ไม่ใช่แค่การสร้างสำเนาไฟล์คงที่ทั้งหมดของฉันหรือไม่

3
วิธีให้บริการไฟล์คงที่ที่มีอยู่ทั้งหมดโดยตรงกับ NGINX แต่พร็อกซีส่วนที่เหลือไปยังเซิร์ฟเวอร์แบ็กเอนด์
location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if (-f $request_filename) { access_log off; expires 30d; break; } if (!-f $request_filename) { proxy_pass http://127.0.0.1:8080; # backend server listening break; } } ด้านบนจะให้บริการไฟล์ที่มีอยู่ทั้งหมดโดยตรงโดยใช้ Nginx (เช่น Nginx แสดงซอร์สโค้ด PHP) หรือส่งต่อคำขอไปยัง Apache ฉันจำเป็นต้องแยกไฟล์ * .php ออกจากกฎเพื่อให้คำขอสำหรับ * .php ถูกส่งไปยัง …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.