7

いくつかのJavaScriptファイルを必要とするDjangoアプリケーションがあります。

Chromeでは、「リソースはスクリプトとして解釈されますが、MIMEタイプtext/htmlで転送されました」というエラーが表示されます。

ここに画像の説明を入力してください

AFAIK(2を参照)この問題を修正するには、JavaScriptファイルがコンテンツタイプ「application/x-javascript」で返されるようにDjangoを構成する必要があります。

Djangoでこれを行うにはどうすればよいですか?

更新:私はダニエル・ローズマンのアドバイスに従い、次の解決策を見つけました。

1)urls.pyを変更します。

urlpatterns = patterns('',
    ...
    url(r'.*\.js$', java_script),
    ...
)

2)次の関数をviews.pyに追加します。

def java_script(request):
    filename = request.path.strip("/")
    data = open(filename, "rb").read()
    return HttpResponse(data, mimetype="application/x-javascript")
4

6 に答える 6

8

問題はあなたが思っていることではないと思います。おそらく実際に起こっているのは、JS ファイルがまったく提供されていないということです。代わりに、Django エラー ページが送信されています。理由を理解する必要があります。

于 2012-08-04T20:02:28.243 に答える
0

これはスクリプトがブラウザによって正しく解釈されるのを妨げないので、なぜこれが問題になるのですか? runserverは開発専用であり(本番環境では使用できません)、本格的なWebサーバーではありません。

開発では引き続き使用する必要があります。本番環境に移行するときは、静的ファイル用にWebサーバーを適切に構成してください。

ただし、静的ファイルを提供するために開発サーバーを絶対に使用する必要がある場合は、静的ファイルを提供する方法を参照してください。

于 2012-08-04T19:35:36.797 に答える
0

Django の場合、ビューでリクエスト コンテキストを使用します。

return render_to_response('success.html', {'object': varobject},context_instance=RequestContext(request))
于 2013-03-02T05:22:19.497 に答える