我有一個.otf字體在/ images文件夾中的MVC 4應用程序。它的工作原理我的桌面上,但是當我部署到Azure,我得到一個404試圖訪問時/images/myfont.otf.OTF字體沒有部署到Azure
的字體已經具備了生成操作屬性設置爲「內容」
我怎樣才能迫使Azure選擇這個?
我有一個.otf字體在/ images文件夾中的MVC 4應用程序。它的工作原理我的桌面上,但是當我部署到Azure,我得到一個404試圖訪問時/images/myfont.otf.OTF字體沒有部署到Azure
的字體已經具備了生成操作屬性設置爲「內容」
我怎樣才能迫使Azure選擇這個?
你可能需要配置IIS以正確投放的文件類型。您在Web.config
通過添加下面的<system.webServer>
元素做到這一點:
<staticContent>
<mimeMap fileExtension=".otf" mimeType="font/otf" />
</staticContent>
更多信息在web.config
在system.webServer
配置以下 http://www.big.info/2013/06/how-to-use-otf-opentype-format-fonts-on.html
這對我有效,謝謝! – JleruOHeP
HTTP錯誤404表示在服務器上找不到內容。這確實意味着當您將應用程序部署到Windows Azure時,內容不在包中。
正如您在上面建議的那樣,您將.OTF設置爲內容,這意味着您要求編譯器將其視爲靜態文件並且不構建它,但是特定文件不會被複制到最終輸出文件夾中最終CSPKG的一部分。您需要將「複製到輸出目錄」設置爲「始終複製」,以便它可以成爲CSPKG的一部分並部署到Azure雲服務。
正確設置文件屬性並構建應用程序後,您可以手動訪問輸出文件夾,以便通過解壓縮來驗證該文件是否存在以及CSPKG。
這可能不是問題。字體文件與說圖像沒什麼區別,你不需要爲這些文件改變任何屬性。看到我的答案更可能的原因。 – MEMark
地點:
<system.webServer>
<staticContent>
<remove fileExtension=".otf" />
<mimeMap fileExtension=".otf" mimeType="font/otf" />
</staticContent>
</system.webServer>
我最好的選擇是你有你的CSS中的字體文件的相對路徑。
你是否得到403禁止?這可能表明您的文件路徑已關閉。
嘗試從../filename.otf改變你的路徑類似/Styles/filename.otf(或其他路徑)
,我的問題是,這些文件並沒有包含在項目。它們位於正確的文件路徑((project)/Content/fonts/*
)中,但未被視爲項目的一部分(即由*.csproj
文件引用)。解決方案是右鍵單擊字體文件夾並選擇Include in Project
選項。
您可以通過提取** cspkg **文件(這是上傳到Azure的內容)來確認文件是否被複制,您可以在'X:\ Solution \ AzureProject \ bin \ ConfigName \ app.publish中找到它\ AzureProject.cspkg'您需要解壓縮ASP.NET項目,然後檢查sitesroot下的Content文件夾。 –