2013-01-18 2 views
1

저는 Django 1.4 프로젝트를 가지고 있습니다. Python 2.7에서 실행 중이며, Dajaxice 0.5.4.1을 사용하고 있습니다. 내 개발 컴퓨터 (Windows 7)에 설치했고 모든 것이 완벽하게 작동합니다. 그러나 프로덕션 서버 (Ubuntu 12.04)에 내 응용 프로그램을 배포 할 때 dajaxice.core.js 파일에 404 오류가 발생하고 어떤 문제가 발생하더라도이 문제를 해결할 수 없습니다. 프로덕션 서버는 모든 소프트웨어의 버전이 동일합니다.Dajaxice가 프로덕션 서버에서 발견되지 않았습니다.

내 프로젝트 구조는 다음과 같습니다 : 나는 (settings.pyand base.html` 파일을 urls.py를)을 Dajaxice 설치가 here 단계 및 그 자리에 모든 것을 넣어 다음되었다

/myproject 
/myproject/myproject-static/ <-- all the static files are here 
/myproject/myproject-static/css/ 
/myproject/myproject-static/img/ 
/myproject/myproject-static/js/ 
/myproject/templates/ 

/myproject/myproject/ 
/myproject/main/ 
/myproject/app1/ 
/myproject/app2/ 
/myproject/app3/ 
etc. 

.

Alias /myproject-static/ "/path/to/myproject/myproject-static/" 

내 프로덕션 서버에 collectstatic를했고, 모든 가지고 :이처럼 보이는 내 django.conf 파일에 Alias 지침을

from unipath import Path 
PROJECT_ROOT = Path(__file__).ancestor(3) 

STATIC_ROOT = '' 
STATIC_URL = '/myproject-static/' 
STATICFILES_DIRS = (
    PROJECT_ROOT.child('myproject-static'), 
) 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'dajaxice.finders.DajaxiceFinder', 
) 

DAJAXICE_MEDIA_PREFIX = "dajaxice" 
DAJAXICE_DEBUG = True 

:

settings.py 파일은이 값이 내 프로젝트의 루트에있는 몇 안되는 폴더에서 수집 된 정적 파일. 이제 배포 된 웹 사이트를 살펴보면 CSS가 올바르게 적용되고 JavaScript가 정상적으로 작동하며 사이트 내 탐색이 의도 한대로 작동한다는 것을 알 수 있습니다. dajaxice.core.js은 절대로 포함되어 있지 않기 때문에 Ajax가 완전히 고장난 것을 제외하고는 모든 것이 좋습니다.

/myproject 
/myproject/myproject-static/ <-- all the static files are originally here 
/myproject/myproject-static/css/ 
/myproject/myproject-static/img/ 
/myproject/myproject-static/js/ 
/myproject/templates/ 

/myproject/admin/ <-- folder created with 'collectstatic' command 
/myproject/css/ <-- folder created with 'collectstatic' command 
/myproject/dajaxice/ <-- dajaxice.core.js is located here 
/myproject/django_extensions/ <-- folder created with 'collectstatic' command 
/myproject/img/ <-- folder created with 'collectstatic' command 
/myproject/js/ <-- folder created with 'collectstatic' command 

/myproject/myproject/ 
/myproject/main/ 
/myproject/app1/ 
/myproject/app2/ 
/myproject/app3/ 
etc. 

내가 여기 내 정적 파일이 완전히 잘못 뭔가를하고 있습니까 :

내 프로젝트 폴더 구조를 다음과 같이 정적 외모를 수집 한 후?
이 간단한 오류를 해결하기 위해 무엇을 시도해야합니까?

+0

안녕하세요. 비슷한 문제가 있습니다. 마지막 단계에서 해결 했습니까? – lamba

답변

1

나머지 자산으로 dajaxice.core.js이 내 static/dajaxice 폴더 안에 있는지 확인해 보셨습니까? 이 문제는 STATICFILES_FINDERS의 미스 구성과 관련 될 수없는 경우, collectstatic 및 dajaxice으로 Installing dajaxice again

또 다른 일반적인 문제를 확인이 옵션을 사용하고 처음 사용 --link을 실행하는 것입니다?

희망이 있습니다.

+0

안녕하세요 호르헤, 답변 주셔서 감사합니다! 내 폴더 구조를 약간 변경하고 이에 따라 원래 게시물을 편집했습니다. 정적 파일을 수집 할 때'--link' 옵션을 사용하지 않았습니다. 또한'djaxice.core.js'는'dajaxice' 폴더에있는 프로젝트의 루트에 위치하여 수집 된 것입니다. 나는 그것을 원래의 포스트에서 조금 더 설명하려고 노력했다. – errata

+0

아마 dajaxice를 설치하기위한 제공된 링크를 확인한 것을 잊어 버렸습니다. 그리고 나는 모든 것이 그것의 장소에 있다는 것을 확신합니다. 앞서 언급했듯이 모든 것이 개발 서버 (Windows 7)에서 작동하지만 프로덕션 서버에 배포하면 실패합니다. – errata

1

이 문제로 몇 시간을 보냅니다. 비록 모든 dajax 및 dajaxice 설정이 공통 기본 설정 파일에 있었지만 모든 것이 내 dev 환경에서 잘 작동했기 때문에 테스트 서버에서는 작동하지 않았기 때문에 미쳤습니다. 나는 표준 경로를 사용하여 작동시키지 못했다. 그러나 이것은 매우 쉬운 해결 방법입니다.

1) 정적 인 디렉토리를 원하는대로 dajaxice.core.js를 다운로드하십시오. 당신은 당신의 프로젝트 루트에 dajaxice 디렉토리에있는 JS를 찾을 수 있습니다

프로젝트/dajaxice/dajaxice.core.js 내 경우

을, 내 모든 다른 JS 라이브러리와 함께 정적 /의 JS에서 파일을 넣어 .웹 페이지에서

2)이 교체 :

{% dajaxice_js_import %} 

을 JS 라이브러리에 대한 정상적인 일상 링크. 내 경우 :

<script src="/static/js/dajaxice.core.js" type="text/javascript"></script> 

불행히도이 패치는 개발 된 코드에서만 작동합니다. 개발 환경에서이 코드를 사용하면 새로운 dajaxice 코드가 원래 프로젝트/dajaxice/location에 등록되므로 새 코드가 개발 된 후에 파일을 정적으로 복사해야합니다.

관련 문제