비디오에 미리보기 이미지를 표시하는 간단한 Django 앱이 있습니다. 앱이 수행하는 첫 번째 작업은 MEDIA_ROOT
에있는 모든 미리보기 이미지 파일을 찾는 것입니다. 그 밖의 모든 것은 그로부터 흐릅니다. 아파치가 내 사이트를 올바르게 서비스하고 있지만, 내 media_root에서 파일을 찾을 수 없습니다.OS X Django/Apache 앱이 미디어 파일을 제공하지 않습니다. 파이썬 셸을 사용합니다.
views.py : settings.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))
관련 정보 :
는# 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>
테스트로 경로 것을 보장하기 위해 내 미디어에 맞다면, 빠른 스크립트를 작성하여 python3 쉘에서 실행했습니다 :
MEDIA_ROOT = '/Users/user/Documents/temp/secureDash/'
def walk_dir_tree(path, file_type):
return[os.path.basename(x) for x in glob.glob(path + file_type,
recursive=True)]
all_thumb_files = sorted(walk_dir_tree(
MEDIA_ROOT + 'thumbnails/**/*', '.jpg'), reverse=True)
# prints a list of all jpgs
print(walk_dir_tree('/Users/user/Documents/temp/secureDash/thumbnails/**/*', '.jpg'))
# also prints a list of all jpgs
print(all_thumb_files)
아무데도 기록되지 않은 오류가 없습니다. 매번 빈 목록 만 반환합니다. 이 가능성이 내 settings.py 또는 아파치 구성 문제가있는 것으로 생각하지만 여러 조합을 시도하고 아무것도 작동하지 않았습니다.
이 정확한 구성은 제 라즈베리 파이의 "생산"서버에서 작동합니다. 난 그냥 더 가까운 생산 환경과 일치하는 dev 환경을 설정하려고합니다. 차이점은 OS와 MEDIA_ROOT
위치입니다.
장고 1.10 | OSX 10.11 엘 캐피 탄 | 아파치 2.4
코드에서 이전에'print()'디버깅을 해봤습니까? 'index()'뷰 코드에서 콘솔에 몇개의 런타임 값을 출력하는 것처럼 보입니다. –
그래, 그게 내가 생각할 수있는 곳이면 어디든 할 수있다. 'print (all_thumb_files)'는'[]'를 반환합니다. 'print ('settings.MEDIA_ROOT is :'+ settings.MEDIA_ROOT)'는 walk_dir_tree 내부의'/ Users/user/Documents/temp/secureDash /'를 반환합니다 :'print ('path + file_type :'+ path + file_type)' '/ Users/user/Documents/temp/secureDash/thumbnails/**/*. jpg' – brewcrazy
파이썬 버전은 무엇입니까? "버전 3.5에서 변경됨 :"** "."을 사용하는 재귀 적 glob 지원 – mithuntnt