OS X Django/Apache应用程序不提供媒体文件,使用python shell工作

OS X Django/Apache应用程序不提供媒体文件,使用python shell工作,python,django,macos,apache,osx-elcapitan,Python,Django,Macos,Apache,Osx Elcapitan,我有一个简单的Django应用程序,可以显示视频的一堆缩略图。应用程序要做的第一件事是在媒体根目录中查找所有缩略图文件。其他的一切都是从那开始的。我已经让apache正确地服务于我的站点,但是它在我的媒体根目录中找不到文件 views.py: def index(request): def walk_dir_tree(path, file_type): return[os.path.basename(x) for x in glob.glob(path + file_t

我有一个简单的Django应用程序,可以显示视频的一堆缩略图。应用程序要做的第一件事是在
媒体根目录中查找所有缩略图文件。其他的一切都是从那开始的。我已经让apache正确地服务于我的站点,但是它在我的媒体根目录中找不到文件

views.py:

def index(request): 
    def walk_dir_tree(path, file_type):
        return[os.path.basename(x) for x in glob.glob(path + file_type,
                                                      recursive=True)]   
    # Gets all .jpgs in media_root
    all_thumb_files = sorted(walk_dir_tree(
        settings.MEDIA_ROOT + 'thumbnails/**/*', '.jpg'), reverse=True)
...
return HttpResponse(template.render(context, request))
settings.py中的相关信息:

# URLs
STATIC_URL = '/static/'
MEDIA_URL = '/media/'

# Root Dirs:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
# Dev
MEDIA_ROOT = '/Users/user/Documents/temp/secureDash/'
http-vhosts.conf:

<VirtualHost *:80>

    LogLevel debug

    ServerName securedash
    ServerAdmin <email>


    Alias /static /Users/user/icloud/projects/secureDash/static
    <Directory /Users/user/icloud/projects/secureDash/static>
        Require all granted
    </Directory>

    Alias /media /Users/user/Documents/temp/secureDash
    <Directory /Users/user/Documents/temp/secureDash>
        Require all granted
    </Directory>

    <Directory /Users/user/icloud/projects/secureDash/secureDash>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    WSGIDaemonProcess securedash python-path=/Users/user/icloud/projects/secureDash/secureDash python-home=/Users/user/Documents/VirtualEnvs/securedash
    WSGIProcessGroup securedash
    WSGIScriptAlias / /Users/user/icloud/projects/secureDash/secureDash/wsgi.py
</VirtualHost>
任何地方都没有记录错误。它每次只返回一个空列表。我想这可能是我的settings.py或apache配置的一个问题,但我尝试了许多组合,但都没有效果

我在我的raspberry pi上的“生产”服务器上有这个精确的配置。我只是想建立一个与生产环境更加匹配的开发环境。唯一的区别是OSs和
MEDIA\u ROOT
位置


Django 1.10 | OSX 10.11 El Capitan | Apache 2.4

这最终成为了
/Users/user/Documents/temp/secureDash/
的权限问题,但@mithuntt提出的建议帮助我解决了这个问题。因此,我回去浏览了
/Users/user/Documents
,它确实返回了结果。然后添加返回结果的
/temp
。然后
/secureDash
,它没有。我在
/temp
中尝试了另一个目录,它与
/secureDash
处于同一级别,并且有效。所以我检查了
/secureDash
上的权限,结果是:

17276808 drwx------@  6 user  _www                           204B Mar 29 15:04 secureDash
所以我运行了
chmod-R 755/Users/user/Documents/temp/secureDash/


现在缩略图正在加载。我不应该在apache日志中看到文件权限错误,这就是问题所在吗?我在http-vhosts.conf中进行了
logleveldebug
。对于开发环境来说,什么是好的日志级别设置?

您在代码中尝试过一些好的
print()
调试吗?看起来,在控制台的
index()
视图代码中输出一些运行时值可以为诊断提供足够的提示。是的,我已经在任何我能想到的相关地方做了这些<代码>打印(所有文件)
返回
[]
print('settings.MEDIA\u ROOT是:'+settings.MEDIA\u ROOT)
返回
/Users/user/Documents/temp/secureDash/
,在walk\u dir树内部:
print('path+file\u type:'+path+file\u type)
返回
/Users/user/Documents/temp/secureDash/thumbnails/**.jpg
它是什么python版本?在版本3.5中更改:使用“**”支持递归全局文件。“而不是做整个事情,您可能会考虑测试GLUPEN文件夹并确认其中的内容。例如glob.glob(“/Users/user/Documents/temp/secureDash/thumbnails/HARD_CODE_A_FOLDER/*.jpg),并确认该文件夹中有内容。我的virtualenv正在使用Python 3.5.2
17276808 drwx------@  6 user  _www                           204B Mar 29 15:04 secureDash