Django 中 STATICFILES_DIR、STATIC_ROOT 和 MEDIA_ROOT 的区别
Django 中的静态文件是不会改变的文件,例如图像、 CSS 和 JavaScript。 Django 根据这些文件的目的和用途以不同的方式管理这些文件。
STATICFILES_DIR 和 STATIC_ROOT 都用于静态文件,但它们有不同的用途。 STATICFILES_DIR 用于指定 Django 在运行collectstatic 命令时将在其中查找静态文件的其他目录。如果您想将静态文件保存在与项目主目录不同的位置(例如专用的静态文件服务器中),这非常有用。
STATIC_ROOT 用于指定 Django 将在何处收集所有静态文件并在部署项目时使它们可用。这通常设置为项目目录之外的位置,例如示例中的 /home/user/project/django1/top/listing/static。
MEDIA_ROOT 用于用户-上传的文件,例如图像或视频。与静态文件不同,上传的文件可以更改,并且通常没有版本控制。 MEDIA_ROOT 指定这些文件在服务器上的存储位置。
在您的情况下,您使用 MEDIA_ROOT 来存储上传的照片,这是正确的。但是,当您尝试在管理员中包含自定义 JS 脚本时,您使用了 STATICFILES_DIRS 而不是 STATIC_ROOT。这就是为什么您在加载 JS 脚本时遇到 404 错误的原因。
要解决此问题,您可以:
请记住,STATIC_ROOT仅在部署项目时使用,因此建议在开发期间使用STATICFILES_DIRS,在部署时使用STATIC_ROOT .
以上是Django 中的 STATICFILES_DIR、STATIC_ROOT 和 MEDIA_ROOT 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!