5

元々は HTML / CSS ファイルの集まりであった非常に単純なサイトを作成しています。次に、サーバー側のロジックを少し追加する必要があったので、ASP.NET Web ページが適切なソリューションのように思えたので、それを使用することにしました。

だから私はに変更index.htmlし、必要なコードを追加し、それで十分だと思いました(この基本ファイルindex.cshtmlも追加しました:web.config

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

ただし、これをローカルの IIS Express で起動すると、次のエラーが発生しました。

使用する ASP.NET Web ページのバージョンを特定できませんでした。

このサイトを使用するには、サイトの web.config ファイルでバージョンを指定してください。詳細については、Microsoft サポート サイトの次の記事を参照してください: http://go.microsoft.com/fwlink/?LinkId=254126

だから私はこれを私のに追加しましたweb.config:

<appSettings >
    <add key="webPages:Version" value="2.0" />
</appSettings >

サイトは起動しますが、UTF-8 の処理が非常に奇妙です。すべての HTTP ヘッダー、ファイル エンコーディング、およびメタ タグが正しく UTF-8 に設定されていますが、国別文字が正しく表示されません。次の質問を見つけました:非 ASCII 文字には web.config が必要ですか? しかし、それは私の問題を本当に解決しませんでした。

とはいえ、セットアップのどこが悪いのでしょうか? WebMatrix で新しいサイトを作成し、そこにファイルをコピーすると、.NET で Web ページのバージョンを指定しなくても、すべて正常に動作しweb.configます。私が見ることができる唯一の違いはbin、WebMatrix で生成されたプロジェクトにフォルダーが存在することです。

問題は、このフォルダをソース ファイルの一部としても持つ必要があるかということです。binindex.cshtml に動的な行を 1 行追加するためだけに、1.5MB 相当のバイナリ ファイルを Git にチェックインする必要があるとは思えませんが、おそらくそれがその方法でしょうか?

これを確認するか、より良い方法を教えてくれてありがとう。

4

1 に答える 1

1

ASP.NET WebPages では、UTF-8 ページに BOM が必要です。そうしないと、ページが UTF-8 として読み取られません。そうしないと、UTF-8 でエンコードされたページが出力されません。

これは ASP.NET の問題ではなく、WebPages の問題です。WebPages は実際のページを処理し、html を解釈して、それが UTF-8 であるべきであることを認識しません。それを知る唯一の方法は、BOM を探すことです。

于 2012-09-29T23:02:53.390 に答える