python - collectstatic 指的是错误的目录
问题描述
我遇到了一个我似乎无法找到根本原因的问题。
当我运行“collectstatic”命令时,我得到错误文件未找到。我可以看到它试图将文件放在错误的目录中。
首先在运行命令后我得到这个问题
您已请求在设置中指定的目标位置收集静态文件:
/var/www/projects/foobar/foobar/static
哪个是对的。但我得到这个错误:
FileNotFoundError:[Errno 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' 目录?
解决方案
您在 STATIC_ROOT 中指定的路径可能不正确,使用 os.path.join 可以解决此错误,因为它是指定相对于项目目录的路径的更好方法。
请在您的代码中进行以下更改:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/静态/'
然后尝试再次运行您的项目。我建议对 MEDIA_ROOT 和 MEDIA_URL 也进行相同的更改,因为它是一种更好的编码实践。
推荐阅读
- node.js - 如何将数据从 socket-IO 客户端发送到 socket-IO 服务器?
- regex - vim中行首的匹配模式
- database - 一种检查oracle完成sql的方法
- java - 如何从图库中获取多个选定图像的路径
- mono - Mono_conc_hashtable_lookup 中的单声道 100% CPU 旋转
- apache-spark - PySpark:用通过列的空间循环替换标点符号
- excel - Excel中的转置+求和字符串
- java - NestedScrollView 不会滚动所有的孩子
- r - ggplot x 轴 break.vec 开始和结束日期
- spring-boot - 如何使用 Bean 在 Spring Boot 2 中连接到 PostgreSQL