2017-11-22 4 views
0

AngularJS를 사용하는 Grails 2.4 응용 프로그램이 있습니다. 우리는 Grails 애플리케이션의 assets 하위 디렉토리에있는 angularjs 파일 (* .js, * .html 각형 템플릿, * .css)을 처리하기 위해 Grails 2.4와 함께 asset-pipeline 플러그인을 사용 해왔다. 이 애플리케이션을 Grails 3.3.1로 변환했습니다. 또한 자산 파이프 라인 플러그인 버전 2.14.2를 사용합니다. "com.bertramlabs.plugins : asset-pipeline-grails : 2.14.2". 내가 실행 응용 프로그램을 사용하여 Grails의 3 응용 프로그램을 시작할 때AngelsJS가있는 Grails 3 run-app HTML 템플릿을 찾을 수 없음 (404)

나는 브라우저 콘솔에서 점점 오류를 유지, 작동 각도 할 수 없습니다 :

angular.js?compile=false:14110 Error: [$compile:tpload] Failed to load template: /DunbarreComm/assets/app/controls/controls.tpl.html (HTTP status: undefined undefined) 

DunbarreComm 내 응용 프로그램 루트 폴더입니다.

war 파일을 빌드하고 Tomcat 컨테이너에 전개하면 앵귤러 HTML 템플릿을 찾은 것 같습니다.

Grails 응용 프로그램을 만드는 방법은 * .html 템플릿을 assets 폴더의 여러 하위 폴더에 있습니다.

"com.craigburke.angular : angular-template-asset-pipeline : 2.3.0"플러그인을 사용하지 않습니다. 나는이 플러그인을 시도하고 다른 오류가 발생했습니다. 우리의 응용 프로그램은 Grails 2.3에서 "angle-template-asset-pipeline"이없는 자산 파이프 라인 플러그인과 함께 작동하므로,이 플러그인을 사용하지 않고 Grails 3에서 자산 파이프 라인 플러그인 만 있으면 Grails 3에서 정상적으로 작동해야한다고 가정합니다.

나는 매우 신중하게 따랐 는가

는 내 문제가 무엇인지 파악 3.

+0

저는이 문제를 해결하는 방법을 여전히 파악하려고합니다. 디버그 로깅을 켜면 로그 파일에 다음 메시지가 표시됩니다. URI가 [/DunbarreComm/assets/app/controls/controls.tpl.html] 인 HTTP 요청에 대해 'grailsDispatcherServlet'이라는 DispatcherServlet의 매핑이 없습니다. – Anatoli

답변

0

Grails를 위해 Grails의 2.4 단계 업그레이드 필요. application.yml의 contextPath 변수에 응용 프로그램 이름의 철자가 잘못되었습니다. 올바른 값으로 고정하자마자 문제가 해결되었습니다. 저는 여기의 contextPath에 넣어 것입니다 :

server: contextPath: /DunbarreComm

DunbarreComm 내 응용 프로그램의 이름입니다. 이 변수는 응용 프로그램이 빌드되고 war 파일로 배포 될 때 사용되지 않는 것으로 보입니다. 응용 프로그램이 run-app 명령 grails 명령을 사용하여 실행될 때만 사용됩니다. 이제 run-app 명령을 사용할 때와 war 파일을 배포 할 때 내 응용 프로그램이 제대로 실행됩니다.