2011-04-26 3 views
0

나는 최근에 거기에 django의 흥미로운 설치가 내 날개 아래에 새 서버를 가져 왔습니다. 이전 개발자는 미디어 업로드를 정적 컨텐츠와 혼합했으며 다른 모듈에서는 프로젝트의 루트 파일 레벨에 자체 디렉토리를 만들었습니다. 이것에 대한 나의 첫 반응은 일반적인 성가심이었다. (저는 모듈 식 개발에 대한 열렬한 팬입니다.) 그러나 'correct'하기 위해 노력한 후에 질문이 제기되었습니다.미디어를 사용하여 사이트를 구성하여 기본 코드와 별도로 유지하는 가장 좋은 방법입니다. (의견을 기반으로)

이 질문에 django 태그가 붙어 있더라도 java 및 asp.net에 따라 응답을 보내주십시오.

정적 파일을 어떻게 설정합니까? 정적 디렉토리 안에 모든 것을 쌓아 두거나 각 모듈을 독립적으로 시간 링크로 사용합니까?

내가 시작하는 모든 장고 앱에 대한 나의 트릭 중 하나는 .py의 앱에 다음과 같은 내용을 넣어 둔다.

import os 
from django.conf import settings as djsettings 
TEMPLATES_DIR = (os.path.join(os.path.dirname(__file__),'./templates'),) 
djsettings.TEMPLATES_DIR += TEMPLATES_DIR 
+0

정적 파일은 전체 웹 사이트의 앱 컨텍스트와 실행중인 웹 사이트의 종류에 따라 크게 달라집니다. 대부분의 콘텐츠 기반 사이트에서 정적 콘텐츠는 대부분 앱에 무관심하며 웹 사이트 전체에서 사용되므로 특정 앱과 함께 제공하는 것은 의미가 없습니다. 나중에 다른 사람이 내 앱을 사용하는지 여부에 따라 다릅니다. 그렇다면 정적 컨텐츠를 번들링해야합니다. –

답변

3

트릭이 정말로 필요하다고 생각하지 않습니다.

당신이 django.template.loaders.app_directories.Loader (docs) 사용하는 경우 당신은 당신의 응용 프로그램 디렉토리에 템플릿 디렉토리를 넣을 수 있습니다 장고 앱 전용 템플릿

그리고 당신이 할 수 staticfiles의 응용 프로그램을 사용할 수 있습니다 장고 1.3로 시작을 위해 그것을 확인합니다 모든 정적 미디어 파일과 비슷합니다. staticfiles-finders

마지막으로 collectstatic 관리 명령 덕분에 정적 미디어 파일을 모듈화하여 (개발 및 배포 용이성) 이제 중앙 집중식으로 묶을 수 있습니다. 일단 프로젝트를 배치하고 제공 할 시간입니다.

0

지금은 정적 파일이 들어있는 각 앱 디렉토리에 static 폴더를 둡니다. 각 응용 프로그램 디렉토리에 템플릿을 templates 아래에 보관합니다. nginx 또는 apache 뒤에 앱을 넣을 때 static 경로의 별칭을 지정합니다.

더 많은 일을하기 시작한 것 중 하나는 javascript, css 또는 이미지와 같은 정적 파일을 S3과 같은 CDN에 두는 것입니다.

관련 문제