2010-12-11 4 views
1

저는 여러 기사를 저장하는 웹 사이트를 구축하고 있습니다. 각 기사의 URL은/Articles/{categoryid}/{articleslug} 형식으로 URL 라우팅을 구현합니다.URL 라우팅 및 관련 링크 동작

일부 기사에는 그래픽 파일에 대한 링크가 있습니다. 링크는 전체 경로를 지정하지 않으므로 그래픽 파일을 /Articles/{categoryid}/{articleslug}/graphic.jpg에 저장합니다.

내 데스크톱에서 정상적으로 작동합니다. 그러나 사이트를 공유 호스팅 계정에 배포하면 동작이 달라집니다.

이제 링크는 /Articles/{categoryid}/graphic.jpg에 그래픽 파일을 저장 한 경우에만 작동합니다. 즉, 바탕 화면에서 {articleslug}는 디렉토리로 간주되지만 웹에서는 현재 페이지의 이름으로 간주됩니다.

아무도 동작이 변경되는 이유를 알고 있습니까? http://www.blackbeltcoder.com/Articles/asp/creating-website-thumbnails-in-asp-net에서 예를 볼 수 있습니다. 상단의 스크린 샷과 다운로드 링크는 모두 깨진 링크입니다.

+0

위의 URL에 '/'을 추가하면 디렉토리 이름으로 간주되어 링크가 정상적으로 작동한다는 사실을 알았습니다. 그러나 나는 왜 이것이 필자의 바탕 화면에서 필요하지 않은지 또는 내가 이것을 제어 할 수 있는지 이해하지 못한다. –

+0

개발 서버와 joel에 대한 내 의견에 설명 된 IIS를 제외하고, 나는 내 페이지에 태그를 지정하는쪽으로 기울이고 있습니다. 그렇게하면 상대 링크의 의미를 정확하게 제어 할 수 있어야합니다. –

답변

0

입력 해 주셔서 감사합니다. 이미 문제를 특별히 보지 않는 한 누군가를 위해 충분한 정보가 없을 것입니다.

나는 그 자체로 해결할 수 있었고 나는 Relative Links with Extension-less URLs에 게시 한 관련 질문에서 해결책을 설명했습니다.

감사합니다.

0

더 많은 것을 알지 못하면 가장 가능성있는 원인은 IIS의 다른 버전이나 구성 일 것 같습니다. 웹 호스트의 동작은 모든 종류의 의미를 갖습니다. 바탕 화면의 동작이 저를 혼란스럽게합니다. 데스크톱이/Articles/{categoryid}/{articleslug}에서/Articles/{categoryid}/{articleslug} /로 리디렉션하고 있습니까? 브라우저가 GET 요청을 다르게 형식화하는지 알아보기 위해 Fiddler 등을 사용할 수 있습니까?

+0

다른 사람이 나에게 지적했듯이 개발 서버가 ASP.NET 처리기를 통해 모든 요청을 처리하지만 IIS는 그렇지 않습니다. 그는 URL이 IIS에서 .aspx로 끝나면 괜찮다고 지적했습니다. IIS 용 디렉토리 URL처럼 보이면 기본적으로 ASP.NET 처리기를 통해 전송되지 않습니다. 그래서 Visual Studio에서 다른 동작을 실행하는 것 같습니다. –

+0

더 구체적으로 질문에 대답하기 위해 리디렉션을하지 않습니다. ASP.NET 4.0 URL 라우팅을 사용하고 있습니다. 그리고 나는 Fiddler를 설치했지만 내가 무엇을 찾고 있는지 전혀 모른다 고 생각합니다. 나는 개발자이지만 관리자/IIS 사람은 아닙니다. 지속적인 노력에도 불구하고이 문제는 해결되지 않았습니다. –

+1

.aspx가있는 URL의 결말은 중요하지 않다고 생각합니다. 그게 문제 였다면, 귀하의 사이트는 웹 서버에서 전혀 작동하지 않을 것입니다. 최신 버전의 IIS에는 이러한 문제가 없습니다. 방금 컴퓨터에서 테스트를 실행했습니다. ASP.NET MVC 1로 배포 된 라우팅 라이브러리 버전이 있으며 웹 서버와 비슷하게 작동합니다. bin 디렉토리에 라우팅 dll의 버전을 배치하고 GAC가 아닌 해당 디렉토리를 참조하여 어떤 일이 발생하는지 확인할 수 있습니다. – joelt