2012-05-09 101 views
85

加載我所有的應用程序都工作正常,但突然IIS下的所有網站都沒有加載CSS,圖片,腳本。它重定向到登錄頁面。CSS,圖片,JS不是在IIS

如果我登錄它工作正常。例如mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png

在我的本地機器它而不登錄工作正常。

+0

錯標籤,而不是真正的問題... – Reniuz

+2

回滾到標記的版本,因爲我覺得* *我知道是什麼原因造成這種現象與標籤有關。如果沒有,我會投票結束。 –

+0

這是沒有問題,這個網絡配置我已經嘗試了所有的答案。我認爲這是問題,因爲IIS的所有站點工作正常之前,我部署一個應用它影響所有在IIS –

回答

6

據窗戶權限問題我移動文件夾完蛋了繼承錯誤的權限。當我移動到wwwroot文件夾並向iis用戶添加權限時,它開始正常工作。

+1

我有同樣的問題,只是將項目文件從'desktop'移動到'wwwroot'文件夾,另外我已經添加了對網絡服務的完全控制,這與應用程序有關池。 – mihkov

4

你可能在你的web.config啓用Windows身份驗證。在本地機器上,您的Windows憑據會自動傳遞並且可以正常工作。在現場,你被視爲一個匿名用戶(IE設置可以控制這個,但不要修改這個,除非你真的知道你在做什麼)。

這會導致如下:

  • 您需要明確登錄。
  • 因爲您未通過身份驗證,所以不會在登錄頁面上提供類似腳本和CSS的資源。

這不破,只是按預期運行,但要「修理」這樣的:

  • 變化在web.config中的身份驗證類型,如果你不希望任何登錄。
  • 和/或在含有目錄(或多個)CSS,圖像,腳本等指定授權規則添加一個web.config。
+0

驗證模式是Forms不是窗口?應用程序Web配置文件覆蓋機器配置?在IIS中是否有任何設置導致這種情況? –

+0

表單身份驗證還會觸發登錄提示並阻止提供腳本和圖像等資源。查看您需要對web.config進行的特定更改的其他答案。在IIS中保存設置將修改Web配置。 –

+0

我自己解決。當我在我的網絡上共享wwwroot文件夾時出現問題。它改變目錄的權限。當我取消共享並將權限設置爲默認值時。它解決了:)感謝蒂姆 –

5

添加到您的web.config

<location path="Images"> 
    <system.web> 
     <authorization> 
      <allow users="*" /> 
     </authorization> 
    </system.web> 
</location> 
+0

這似乎不再在IIS 8中工作。 –

+0

我已經在IIS 8 Express中測試過,它不起作用。 – VansFannel

+0

路徑是相對的,有時添加根將解決此問題。嘗試設置路徑到「」〜/ Images「' – StuperUser

4

使用該在你的web.config文件中的配置部分:

<location path="images"> 
<system.web> 
    <authorization> 
    <allow users="*"/> 
    </authorization> 
</system.web> 
</location> 
<location path="css"> 
<system.web> 
    <authorization> 
    <allow users="*"/> 
    </authorization> 
</system.web> 
</location> 
<location path="js"> 
<system.web> 
    <authorization> 
    <allow users="*"/> 
    </authorization> 
</system.web> 
</location> 
14

這可能不會回答你的問題,但我一直在用新的IIS安裝時出現同樣的症狀。 CSS,JS和圖像沒有顯示出來。原因是「靜態內容」角色未安裝在IIS 7.5中。

+0

你可能會遇到不同的問題,我的問題是當我從inetpub移動目錄時,當我恢復我的問題被修復時,它將刪除權限。 –

132

的問題可能是IIS不提供靜態內容,您可以在這裏設置: enter image description here

來源:http://adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/

+2

我有類似的問題,意識到這是一個安裝問題,但啓用靜態內容似乎已修復它! –

+5

這節省了我的培根,你會認爲這是默認啓用的,但在Windows 10上它不是。 – Justin

+1

這對我有效!請注意,出於某種原因,我必須做兩次 – Nick

108

我有同樣的問題,未經身份驗證的頁面將不會加載CSS ,JS和圖像,當我在Windows Server 2012 R2上的IIS 8.5中的ASP.Net 4.5中安裝我的Web應用程序時。

  1. 我有靜態內容角色安裝
  2. 我的Web應用程序是在IIS的wwwroot文件夾和所有的Windows文件夾權限完好(在默認的,包括IIS_IUSRS)
  3. 我添加授權所有包含CSS,JS和圖像的文件夾。
  4. 我對Windows共享網絡應用程序文件夾,所以我刪除共享通過@伊姆蘭 - 拉希德

的建議然而,似乎沒有什麼解決的問題。最後,我厭倦了將匿名用戶的身份設置爲App Pool Identity,並開始工作。

Click on the Authentication Feature Edit the Anonymous Authentication Change to App Pool Identity

我撞我的頭幾個小時,希望這個響應將保存爲我的同胞開發商的痛苦。

我真的很想知道爲什麼這是行得通的。有什麼想法嗎?

+1

這也適用於我。我相信這是因爲「特定用戶」沒有權限訪問應用程序池標識所在的文件夾位置。 – dcinadr

+2

這工作對我來說,謝謝一噸 – kkap

+0

@moiz Tankiwala這對我工作! – clamchoda

1

在我的情況下,

IIS可以localhost加載的一切,但是因爲.tag擴展列表不是無法從192.168.0.123

載入我的模板文件app.tag

IIS MIME types

1

要解決這個問題:

轉到Internet信息服務(IIS)

點擊你的網站,你嘗試在

加載圖像在IIS部分,打開身份驗證菜單和啓用Windows身份驗證。

2

對我來說,在web.config加入這個解決這個問題的

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" > 
     <remove name="UrlRoutingModule"/>  
    </modules> 
</system.webServer> 
0

一個可能的原因是應用程序預計將在端口443(標準的SSL端口)和端口443運行已在使用。開發人員試圖在Skype運行在他們的計算機上運行我們的應用程序時,我已經遇到過好幾次了。令人難以置信的是,Skype運行在443端口。這在我看來是一個可怕的設計缺陷。如果您看到您的應用程序試圖運行在444而不是443上,請關閉Skype,問題就會消失。

1

在使用生產站點的副本時,我在本地主機測試環境中開發站點時發現了一個有用的建議。請確保您註釋掉規範標籤:

<!--<base href="http://www.example.com/">//--> 
11

嘗試從的web.config去除staticContent部分。

<system.webServer> 
    <staticContent> 
     ... 
    </staticContent> 
</system.webServer> 
+0

刪除staticContent的作品,但現在我所有的字體是404? – RajSan

+0

我不是這方面的專家,但也許您需要通過網站屬性的HTTP標題選項卡中的IIS管理器爲您的字體添加正確的MIME類型聲明。 –

+0

這解決了我的問題,因爲我在開發中有一些.woff文件條目,但在生產中相同的設置需要調整 – guideX

9

我有一個類似的錯誤,我的控制檯看上去像這樣:

error

我的問題是,我跑我的網站的一個子文件夾,因爲該公司使用一個頂級域名和沒有子域。就像這樣:

host.com/app1

host.com/app2

我的代碼看起來像這樣用來對包括本地主機上工作得很好腳本,但不是在APP1或APP2:

<link rel="stylesheet" type="text/css" href="/Content/css/font-awesome.min.css" /> 

增加了一個波浪符號~爲src,然後一切工作:

<link rel="stylesheet" type="text/css" href="~/Content/css/font-awesome.min.css" /> 

~ VS /說明:

  • / - 站點根目錄
  • ~/ - 應用

/將返回該網站(http://host.com/)根的根目錄下,

~/將返回應用程序的根目錄(http://host.com/app1/)。

+0

該死的男人你節省了我的一天 – Avinash

0

如果您嘗試了上述所有解決方案,仍然有問題,可以考慮使用ASP.NET的方法ResolveClientUrl()。

例如腳本:

而不是使用

<script src="~/dist/js/app.min.js" ></script> 

使用方法

<script src="<%= ResolveClientUrl("~/dist/js/app.min.js") %>" ></script> 

這是我的解決方案,爲朋友我幫助的工作!

1

我的痛苦的時刻,是由於在web.config中定義MIME類型。我需要這個開發服務器,但本地IIS討厭它,因爲它重複MIME類型......一旦我從web.config中刪除這些問題,js,css和圖像未加載的問題就消失了。

+0

很難相信它可以是重複的MIME類型!我搜索了至少一個小時,嘗試不同的用戶權限等,但它最終被重複MIME在我的web.config: - | –