2009/11/19

[KB]ASP.NET Development Server Can not Load jQuery.js

這個問題之前遇過一次,結果沒有寫 KB 就又忘記了,最近又新開另一個專案時又碰到,心一橫,還是要乖乖寫文件才行。

在測試環境中的 Web.Config 如下

<!--
<authentication mode="Windows" />
  -->
<authentication mode="Forms">
       <forms name=".aspxCoookie" loginUrl="logon.aspx"/>
</authentication>
<authorization>
       <deny users="?"  />
</authorization>

狀況是這樣子的,logon.aspx 裡面會載入 ~/inc/jQuery.js ,當在 IIS 的環境上正常,但是換到 ASP.NET Development Server 時,就出現 HTTP 401 錯誤訊息。

ASP.NET Development Server 是 Visual Studio 中,可以自行執行 asp.net 的小型 web server ,沒記錯的話,前身應該是 Cassini,於 VS2005 時納進 VS 產品中。

後來恍然大悟, *.js 在 IIS 上,是由 IIS 管理,而非使用 aspnet_isapi.dll 管理,當然不會進入 .Net 的世界,但 ASP.NET Development Server(很長的字,有縮寫嗎?)都是活在 .Net 的世界,所以…觀念清楚了之後,就知道怎麼解決啦~

在 ~/inc/ 目錄中,要新增一個 web.config ,如下所示:

<configuration>
  <system.web>
    <authorization>
      <allow users="*"/><!--不認證,全部開放-->
    </authorization>
  </system.web>
</configuration>

 

或者是限定只有 jQuery.js

<configuration>
    <location path="jQuery.js">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>
</configuration>

 

這個案例,不只是 jQuery.js 適合,還有…還沒認證前,看不到圖(.gif/.jpg/.png),格式不對(.css)

沒有留言: