2014-12-10 2 views
0

관리자 페이지에 wysiwyg redactor를 사용하고 있습니다. 그래서 내 기사에 이미지를 추가 할 수 있습니다. 첫째, settings.py에서 내가 쓴 :이상한 MEDIA_ROOT 위치

REDACTOR_UPLOAD = '/media/uploads/' 
MEDIA_ROOT = '/media/' 
MEDIA_URL = '/media/' 

을,이 경우에는 업로드 된 모든 이미지는 C:\media\uploads에 있습니다. 효과가 있습니다.

그러나 프로젝트 폴더에 이미지가 있어야합니다. 그래서 쓰기 :

REDACTOR_UPLOAD = os.path.abspath('/media/uploads/') 
MEDIA_ROOT = os.path.abspath('media') 
MEDIA_URL = '/media/' 

그런 이미지 위치 : SRC = "/ 미디어/C의 %의 3A/virtenvs/웹/SRC/내 사이트/미디어/업로드/CAM00415.jpg" 하지만 settings.py 디버깅, MEDIA_ROOT = 'C:\\virtenvs\\web\\src\\mysite\\media'

왜?

답변

0

상대 경로는 MEDIA_ROOT이고 절대 경로는 REDACTOR_UPLOAD입니다. 대화 형 콘솔에서 다음 두 가지를 비교하십시오.

>>> os.path.abspath('media/') 
C:\\Users\\<username>\\media 
>>> os.path.abspath('/media/') 
C:\\media 

C:\Users\<username>은 여기에서 현재 작업중인 디렉토리입니다. 절대 경로 (/으로 시작)를 사용하지 않으면 abspath의 경로가 현재 디렉토리에 추가됩니다.

REDACTOR_UPLOAD = os.path.abspath('media/uploads/') 
MEDIA_ROOT = os.path.abspath('media/') 
+0

을하지만, IMG의 경로가 잘못되었습니다 : Andrew

+0

이 F 미디어 이유 'src'의 irst 폴더? 어쩌면 에디터 때문일까? – Andrew

0

MEDIA_ROOT must be an absolute filesystem path 예 :

MEDIA_ROOT = 'C://media/' 
을 장고의 작업 디렉토리는 상대 경로를 사용하여이 경우에, 그래서 모두 설정이 작동해야 들어, 프로젝트의 디렉토리 것으로 보인다 C:\virtenvs\web\src\mysite 될 것으로 보인다

는 내부 프로젝트 폴더로 만들려면 :

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'media').replace('\\','/') 
당신이 말한대로 내가 한