我已經在我的開發卡西尼服務器(與dotless)中成功使用.less
文件幾周,但是當我發佈到我的本地IIS服務器時,它們會產生404錯誤。將我的調試器附加到IIS不會產生任何異常。我也重新啓動了我的IIS應用程序池和服務器。無點文件在IIS中產生404錯誤
任何想法?
我已經在我的開發卡西尼服務器(與dotless)中成功使用.less
文件幾周,但是當我發佈到我的本地IIS服務器時,它們會產生404錯誤。將我的調試器附加到IIS不會產生任何異常。我也重新啓動了我的IIS應用程序池和服務器。無點文件在IIS中產生404錯誤
任何想法?
看起來像你缺少IIS上的MIME類型。
對於IIS7以下內容添加到您的web.config
:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".less" mimeType="text/css" />
</staticContent>
</system.webServer>
對於IIS6你可以做(假設你有管理員RDP訪問):
cscript adsutil.vbs set W3SVC/1/Root/MimeMap ".less, text/css"
哪裏/1/
是網站的IIS數。
只要加上(相當晚,我意識到)我的兩位參加這個討論。
我剛剛遇到了相同的症狀,前面提到的修復程序對我無效。我確實然而最終找到這些症狀的另一個原因和解決方案。
在我的情況下的404響應中響應的主體包含以下消息:
/*出錯。請諮詢日誌或在本地機器上查看。 */
這似乎是一個指示器,確實發現文件較少,並且請求正在由dotLess處理(該消息可在dotLess的源代碼中找到),但在處理請求期間發生了FileNotFoundException。
我將問題追查到一個@import語句,該語句引用了IIS服務器上神祕不存在的.less文件,即使它存在於開發服務器下。
事實證明,這個有問題的.less文件的構建操作被設置爲None,而不是內容,就像我項目中所有其他無文件一樣。
所以下一個合乎邏輯的問題是爲什麼地球上的構建操作不正確?
嗯,我已經將該文件添加爲.css文件,然後決定將其導入到.less文件中,並將其重命名爲.less(因爲.css是.less的子集,但較少不導入css文件)。我用一個新的.css文件重複了這個過程,發現問題是可重現的。
似乎Visual Studio將構建操作從Content更改爲None,作爲將.css重命名爲.less的意外副作用。因此,重命名的.less文件不會發布到IIS服務器。
謝謝+1,遇到同樣的問題,將一些框架轉換爲.less,無法弄清楚爲什麼它會產生一個404,直到我從VS發佈中刪除所有文件。 – 2014-11-24 02:37:50
是的,讓我也是。忘了添加一個新的.less文件到本意是@ import-ed的SVN – rwalter 2014-11-27 20:07:39
哇,這讓我覺得太長了。我的主要樣式表沒有被編譯到我的較少版本中,我不知道爲什麼。謝謝。 – Knostradamus 2015-02-18 16:38:46
你釘了它,謝謝你! Stackoverflow再次來拯救。 – sisdog 2011-05-17 03:43:02
非常愛。我喜歡即時解決方案。 – 2011-10-21 17:40:44
對於IIS6我不得不使用cscript c:/Inetpub/AdminScripts/adsutil.vbs設置W3SVC/1/Root/MimeMap「.less,text/css」' – Myster 2012-03-12 02:45:17