P粉1555517282023-08-24 12:55:28
정적 파일의 위치를 이동하려는 경우 가장 쉬운 방법은 생성자에서 경로를 선언하는 것입니다. 아래 예에서는 템플릿과 정적 파일을 web
라는 하위 폴더로 이동했습니다.
static_url_path=''
URL에서 이전 경로를 모두 제거하세요. static_folder='web/static'
폴더에 있는 모든 파일을 제공합니다.
web/static
정적 파일로. template_folder='web/templates'
마찬가지로 이렇게 변경됩니다.
템플릿 폴더. 이 방법을 사용하면 다음 URL이 CSS 파일을 반환합니다.
으아아아마지막으로 폴더 구조의 스냅샷은 다음과 같습니다. 여기서 flask_server.py
는 Flask 인스턴스입니다.
P粉2129717452023-08-24 09:31:38
프로덕션에서는 정적 폴더의 요청을 처리하도록 애플리케이션 앞에 HTTP 서버(Nginx, Apache 등)를 구성합니다. 전용 웹 서버는 정적 파일을 효율적으로 제공하는 데 매우 뛰어나지만, 낮은 볼륨에서는 Flask와 비교하여 차이를 느끼지 못할 수도 있습니다. /static
/static/
路由,该路由将为 Python 旁边的 static
文件夹下的任何 filename
提供服务定义 Flask 应用程序的模块。使用url_for
链接到静态文件:url_for('static', filename='js/analytics.js')
send_file
또는 send_static_file
을 사용하지 마세요. 이렇게 하면 디렉터리 순회 공격 에 노출됩니다. send_file
或 send_static_file
与用户提供的路径一起使用。这将使您面临目录遍历攻击。 send_from_directory
알려진 디렉터리에 대한 사용자 제공 경로를 안전하게 처리하도록 설계되었으며, 경로가 디렉터리를 벗어나려고 시도하면 오류가 발생합니다.
파일 시스템에 쓰지 않고 메모리에 파일을 생성하는 경우 send_file
BytesIO
对象传递给 send_file
将其作为文件提供。在这种情况下,您需要将其他参数传递给 send_file
파일로 제공해주세요. 이 경우 파일 이름이나 콘텐츠 유형 등을 추론할 수 없으므로 send_file
에 추가 매개변수를 전달해야 합니다.