猿问

STATICFILES_DIR,STATIC_ROOT和MEDIA_ROOT之间的差异

这三个静态网址有什么区别?


我不确定我是否正确,我使用MEDIA_ROOT来存储上传的照片(通过models.ImageField())


但是,我在admin和中创建了一个JS脚本admin.py。我将媒体定义如下:


....

class Media:

      js = ('/admin/custom.js', )

和我的settings.py:


 ....

 STATIC_ROOT = "/home/user/project/django1/top/listing/static"

我添加了custom.js到STATIC_ROOT/admin/custom.js,但它不工作。抛出404找不到错误。


然后我将更STATIC_ROOT改为STATICFILES_DIRS,它可以正常工作!


....

STATICFILES_DIRS = "/home/user/project/django1/top/listing/static"

所以,我不明白这里发生了什么。实际上,我只是不了解STATIC_ROOT和之间的区别STATICFILES_DIRS。


目前,我正在通过virtualenv在我的机器上测试Django,但尚未部署,这是原因STATIC_ROOT吗?


慕容3067478
浏览 1058回答 3
3回答

噜噜哒

STATICFILES_DIRS和之间的区别STATIC_ROOT该STATICFILES_DIRS可以包含其他目录(不一定是应用程序的目录)与静态文件和这些静态文件,当您运行将被收集到您的STATIC_ROOT collectstatic。然后,这些静态文件将由您的Web服务器提供,并且将从您的STATIC_ROOT中提供。如果您当前希望在STATIC_ROOT中保存要提供的文件,则需要将其移动到其他目录,然后将该其他目录放入中STATICFILES_DIRS。您的STATIC_ROOT目录应该为空,所有静态文件都应收集到该目录中。MEDIA_ROOT媒体文件在哪里,所有上传的文件都在哪里。示例:图像,文件
随时随地看视频慕课网APP
我要回答