我遇到了一个似乎无法找到根本原因的问题。
当我运行'collectstatic'命令时,找不到错误文件。我可以看到它试图将文件放在错误的目录中。
首先运行命令后,我得到了这个问题
您已请求在目标位置收集静态文件 根据您的设置中的指定:
/var/www/projects/foobar/foobar/static
哪个是对的。但是我得到这个错误:
FileNotFoundError:[错误2]没有这样的文件或目录: '/ var / www / projects / foobar / foobar / foobar / static'
这就是'foobar'的一个目录。
这是我的制作设置:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
MEDIA_ROOT = '/var/www/projects/foobar/foobar/media'
MEDIA_URL = '/media/'
STATIC_ROOT = '/var/www/projects/foobar/foobar/static'
STATIC_URL = '/static/'
它为什么会添加一个额外的“ foobar”目录?
答案 0 :(得分:1)
您在STATIC_ROOT中指定的路径可能不正确,使用os.path.join可以解决此错误,因为这是指定相对于项目目录的路径的更好方法。
请在您的代码中进行以下更改:
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATIC_URL ='/ static /'
,然后尝试再次运行您的项目。我建议对MEDIA_ROOT和MEDIA_URL也进行相同的更改,因为这是更好的编码做法。