문제

가 Angular.js 웹 애플리케이션을 사용한 ui-라우(https://github.com/angular-ui/ui-router)w/병렬 이라는 전망 좋은:

.state(
            'app.experience', {
                url: 'e/:experienceId',
                views: {
                    'center-pane@': {
                        templateUrl: 'partials/experience.html',
                        controller: 'ExperienceController'
                    }
                })

을 사용할 수 있도록 설정했는데 HTML5 기반을 통해

$locationProvider.html5Mode(true);

http://www.mysite.com/e/123

요청 내 backend 돌려 보냅 index.html 루트 디렉토리에 있습니다.(당으로 사용 HTML5 기반에 angular.js 해)그러나,브라우저 수신 index.html 기 시작하는 모든 가 css/js 원에 대한 요청은

/e/js/script1.js

반대로

/js/script1.js

만 존재하는 루트에서 수준이다.그것은 기본적으로 루트 디렉토리 mysite.com/e/ (에서 요청한 url)및 실제근, mysite.com/.

뭔가가 나는 누락까요?그것은 불가능을 사용하여 상대적 srcs 한 자바 스크립트와에서 css 로 index.html?

는 데 도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

참고:당신과 같이 우리에게 당신의 방법 HTML 보이지만 기반으로 문제가 난다고 가정하고 당신은 당신 상대 url 을 사용하여 문서 루트입니다.

당신이 사용할 수 있는 상대적인 url 을 만들어야 될 상대 에 따라 문서 루트.

그래서 예를 들어,당신은 수도에서 다음과 같이 html

<img src="images/foo.jpg" />

정말 당신이 해야 그것은 이 방법이(통한의 시작은'/'slash)

<img src="/images/foo.jpg" />

이것은 뭔가 특정을련,그것은 html 것을 참조하십시오 이 답변 자세한 내용은.

이유는 당신의 브라우저를 사용하는 /e/ 에 url 을하기 때문입 브라우저 실제로 요청한 리소스 /e/ 에는 url 이 있습니다.브라우저를 알지 못하는 서버에 응답하지 않은 파일에 /e/ 디렉토리에 있습니다.

따라서,당신은 상대 url 없이 슬래시 처음에는,그것은 것입니다 상대적인 경로 또는 원래 요청한 자원입니다.당신이 원하는 것은 상대 url 을 사용하 슬래쉬로 시작 부분에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top