2017-09-27 27 views
0

我有一個web應用程序asp.net mvc。在此應用中,我用我配置一樣,數據表有法語:關於asp.net mvc應用程序的DataTables json語言文件

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

當我測試的應用程序在本地,它的作品,我有數據表中的法國,但是當我發佈我的應用程序(使用Visual工作室),它不再工作。我有這樣的錯誤:

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

但是如果我通過了CDN網址,而不是我的文件,它出版後本地工作,也:

<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註冊的文件類型的問題。您可以使用以下步驟將json MIME類型添加到IIS中:

1)選擇您的站點在Sites部分,在IIS類別中選擇MIME Types選項。

2)使用Add顯示「添加MIME類型」框。

3)添加適當的MIME類型JSON文件擴展名的application/json如在此圖像中,然後單擊確定(可能需要重新啓動你的網站應用此更改):

enter image description here

如果本地&生產環境爲Url.Content路徑返回404,但問題可能源於瀏覽器安全問題,因爲language配置選項需要AJAX回調,並且某些瀏覽器不允許AJAX請求通過使用file://路徑(more info)來檢索本地文件。當這成爲您當前的問題時,除了使用DataTables CDN URL(如http://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json)之外沒有別的辦法,因爲您無法控制客戶端的瀏覽器安全設置。

類似的問題:

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

how to change language for DataTable

+0

是的,謝謝,這是一個MIME類型的問題。我在下的web.config文件中添加了這一行「」。 – Adrien