/imagesフォルダーに.otfフォントのMVC4アプリケーションがあります。デスクトップでは動作しますが、azureにデプロイすると、/ images/myfont.otfにアクセスしようとすると404が表示されます。
フォントには、BuildActionプロパティが「Content」に設定されています。
Azureにこれを強制的に取得するにはどうすればよいですか?
/imagesフォルダーに.otfフォントのMVC4アプリケーションがあります。デスクトップでは動作しますが、azureにデプロイすると、/ images/myfont.otfにアクセスしようとすると404が表示されます。
フォントには、BuildActionプロパティが「Content」に設定されています。
Azureにこれを強制的に取得するにはどうすればよいですか?
このファイルタイプを適切に提供するようにIISを構成する必要があります。<system.webServer>
これを行うには、次の要素を次の要素に追加しますWeb.config
。
<staticContent>
<mimeMap fileExtension=".otf" mimeType="font/otf" />
</staticContent>
詳細 http://www.big.info/2013/06/how-to-use-otf-opentype-format-fonts-on.html
構成に以下を配置web.config
しsystem.webServer
ます。
<system.webServer>
<staticContent>
<remove fileExtension=".otf" />
<mimeMap fileExtension=".otf" mimeType="font/otf" />
</staticContent>
</system.webServer>
HTTPエラー404は、コンテンツがサーバー上に見つからないことを意味します。これは、アプリケーションをWindows Azureに展開したときに、コンテンツがパッケージに含まれていなかったことを意味します。
上記で提案したように、コンテンツとして.OTFが設定されているということは、コンパイラに静的ファイルとして扱い、ビルドしないように要求していることを意味します。ただし、特定のファイルは、finalの一部としてfinal出力フォルダーにコピーされません。 CSPKG。「出力ディレクトリにコピー」を「常にコピー」に設定して、CSPKGの一部にし、Azureクラウドサービスにデプロイできるようにする必要があります。
ファイルのプロパティを正しく設定してアプリケーションをビルドしたら、出力フォルダーに手動でアクセスして、ファイルを解凍するだけで、ファイルとCSPKGが存在することを確認できます。
私にとっての問題は、ファイルがプロジェクトに含まれていなかったことです。それらは正しいファイルパス((project)/Content/fonts/*
)にありましたが、プロジェクトの一部とは見なされませんでした(つまり、*.csproj
ファイルによる参照)。解決策は、フォントフォルダを右クリックしてInclude in Project
オプションを選択することでした。
私の最善の策は、css内にフォントファイルへの相対パスがあることです。
403 Forbiddenを取得していますか?これは、ファイルパスがオフになっていることを示している可能性があります。
パスを../filename.otfから/Styles/filename.otf(またはパスが何であれ)のようなものに変更してみてください