2017-09-27 15 views
0

私はWebアプリケーションasp.net mvcを持っています。このアプリケーションでは、私はフランス語を持っていることのように設定するDataTableの使用:私は(ビジュアルで自分のアプリケーションを公開するとき、私はローカルに自分のアプリケーションをテストする場合DataTables asp.net mvcアプリケーションのjson言語ファイル

<script type="text/javascript"> 
    $(function() { 
     $('table#list').DataTable({ 
      'language': { 
       'url': '@Url.Content("~/Content/datatables-i18n.fr.json")' 
      } 
     }) 
    }); 
</script> 

を、それは動作しますが、私はフランス語でデータテーブルを持っていますが、スタジオ)、それはもはや働いていない。 Iこのエラーがあります:

Failed to load resource: the server responded with a status of 404 (Not Found) 

をしかし、私は代わりに私のファイルのCDNのURLを渡すと、それは公開後ローカルでも動作します:ファイルをパブリッシュした後に発見されていない理由

<script type="text/javascript"> 
    var table; 
    $(function() { 
     table = $('table#list').DataTable({ 
      language: { 
       'url': 'http://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json' 
      } 
     }) 
</script> 

あなたは知っていますか?あなたは、ファイルが対応するフォルダに存在することを確認している

+0

こんにちは、多分それはobviouse質問ですが、あなたは、Visual Studioがあなたのローカライズされたファイル(私はソリューションエクスプローラについて話して公開されていることを肯定している - >プロパティを/Content/datatables-i18n.fr.json - >コピーを出力フォルダにコピーします)? –

答えて

2

ローカルで正常に動作しUrl.Content場合ではなく、生産(パブリッシュ)&に(すなわち[application folder]\Content)、おそらくそれは、登録されたIISファイルタイプの問題に関連します。

セクションでサイトを選択し、IISカテゴリでMIME Typesオプションを選択して、IISにjson MIMEタイプを追加できます。

2)Addを使用して、[MIMEタイプを追加]ボックスを表示します。

3)このイメージに示すように、次にOK(可能性をクリックすると、この変更を適用するためにあなたのサイトを再起動する必要があり、application/jsonとしてJSONファイル拡張子のための適切なMIMEタイプを追加します):

enter image description here

両方のローカル&の場合プロダクション環境がUrl.Contentの404を返した場合、language設定オプションでAJAXコールバックが必要で、一部のブラウザでAJAXリクエストがfile://パス(more info)を使用してローカルファイルを取得できないため、ブラウザセキュリティの問題が原因である可能性があります。これがあなたの現在の問題になったら、クライアントのブラウザセキュリティ設定を制御することができないので、http://cdn.datatables.net/plug-ins/1.10.16/i18n/French.jsonのようなDataTables CDN URLを使用する以外の方法はありません。

同様の問題:

How to resolve language file URL for Jquery datatables in ASP.NET

how to change language for DataTable

+0

はい、ありがとう、それはMIMEタイプの問題でした。 web.configファイルの ""に、この行 "を追加しました。 – Adrien

関連する問題