속성 기반 라우팅을 사용하는 ASP.NET MVC5에서 파일 확장자가있는 URL을 처리하고 싶습니다.
~/javascript/security.js
다음은 컨트롤러 작업 방법의 예입니다.
[Route("javascript/security.js")]
public ActionResult AngularSecurityModule(string clientId)
{
return View(new
{
ClientId = clientId
});
}
그러나 이것은 나에게 HTTP 404-찾을 수 없음을 제공합니다.
runAllManagedModulesForAllRequests를 사용하지 않는 것이 좋습니다 (예 :
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
) 웹 앱에서 다른 정적 파일의 성능을 손상시킬 수 있기 때문입니다.
대답은 해당 URL에 대한 올바른 처리기를 등록하기 만하면된다는 것입니다.
<add name="JavascriptSecurityJs" path="javascript/security.js" verb="GET" type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
내 system.webServer/handlers
속임수를했다. 완전성을 위해 다음은 전체 system.webServer
블록입니다 web.config
.
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="JavascriptSecurityJs" path="javascript/security.js" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
이것에 대한 좋은 점은 IIS 정적 파일 처리가 모든 정적 파일에 대해 여전히 제자리에 있다는 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다