Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中的静态根和静态Url混淆_Python_Django - Fatal编程技术网

Python Django中的静态根和静态Url混淆

Python Django中的静态根和静态Url混淆,python,django,Python,Django,我正在尝试在django中读取和创建mp3文件。但是我对我配置的static和static_root感到困惑。 在我的代码中,当我打印下一行时,它会显示 /usr/local/src/mena\u录制/播放/静态/音频/dorris\u 0.mp3 代码: 但当我在这篇文章的下一行中使用相同的东西时,它给出了一个错误: IOError at / [Errno 2] No such file or directory: u'/usr/local/src/mena_recording/play/st

我正在尝试在django中读取和创建mp3文件。但是我对我配置的static和static_root感到困惑。 在我的代码中,当我打印下一行时,它会显示
/usr/local/src/mena\u录制/播放/静态/音频/dorris\u 0.mp3

代码:

但当我在这篇文章的下一行中使用相同的东西时,它给出了一个错误:

IOError at /
[Errno 2] No such file or directory: u'/usr/local/src/mena_recording/play/static_root/play/static/audio/dorris_0_.oga'
代码:

我的设置.py

STATIC_ROOT = os.path.join(BASE_DIR, 'play/static_root')
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'mena_recording/static'),
    os.path.join(BASE_DIR, 'play/static'),
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)
有人能告诉我这是怎么回事吗

谢谢。

来自django文档

collectstatic将在其中收集静态文件以进行部署的目录的绝对路径

是引用位于
static\u ROOT
中的静态文件时要使用的URL

因此,当您请求某个特定的静态资源时,它会在
static\u ROOT+static\u URL
中搜索并提供服务

现在在你的问题上,你知道了

STATIC_ROOT = os.path.join(BASE_DIR, 'play/static_root')
STATIC_URL = '/static/'
这意味着django会在
BASE\u DIR/play/static\u root/static/
中有效地进行搜索,这是不正确的,因此查看其他路径可以找出需要执行的操作

STATIC_ROOT = os.path.join(BASE_DIR, 'play/')

尝试将STATIC\u ROOT编辑为
STATIC\u ROOT=os.path.join(BASE\u DIR,'play/')
@mu無 你的评论起了作用。它现在可以工作了,但是你能告诉我Django是如何将实际路径转换为静态根路径的吗?请检查我的答案,如果这有帮助的话,不要忘记接受并向上投票:)
STATIC_ROOT = os.path.join(BASE_DIR, 'play/static_root')
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'play/')