0

以前は正常に機能していましたが、何が変わったのかわかりませんが、静的ファイルの読み込みでエラーが発生します=(助けてください!

Django1.4の使用

Urls.py

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()

Settings.py

STATIC_ROOT = '/root/abc/abc_app/sitestatic'

# URL prefix for static files.
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    '/root/abc/static/',
    '/Users/blahusername/djangoproj/abc/static/',
)

Header.html

  <script type="text/javascript" src="/static/js/jquery-1.7.1.min.js"></script>

ブラウザのエラー:

GET file://localhost/static/js/jquery-1.7.1.min.js  
Unsafe JavaScript attempt to access frame with URL file://localhost/Users/blahusername/djangoproj/abc/abc_app/templates/index.html from frame with URL http://www.youtube.com/embed/yyy. Domains, protocols and ports must match.
4

1 に答える 1

0

これは、表示したブラウザエラーに基づくdjango-staticfilesの問題ではなく、ブラウザのクロスオリジンポリシー/iframeとホストページへのアクセスに関する問題のように見えます。それを確認するには:

  • devtools(ChromeやSafariなど)を備えたブラウザで、エラーの原因となっているページを読み込みます。
  • [リソース]タブをクリックし、[フレーム]>(プライマリフレームの名前)>[スクリプト]でjqueryスクリプトを探します。
  • [ネットワーク]タブをクリックしてページを再読み込みし、jQueryファイルのリクエストのHTTPステータスを確認します。

[リソース]タブにjquery-1.7.1.min.jsファイルの内容が表示され、それをロードするリクエストのステータスが[ネットワーク]タブに200または304である場合、問題はdjangoの静的ファイルの提供にありません。

別の観察:

  • ブラウザエラーのindex.htmlURLはfile:/// url(file://localhost/Users/blahusername/djangoproj/abc/abc_app/templates/index.html)です。オリジン間リソース共有の制約により、ほとんどのブラウザは通常、あるオリジンからロードされたページが別のオリジンからのリソースにアクセスすることを許可しません。各file:/// URLは、両方が同じファイルシステムフォルダにあるリソースを参照している場合でも、他のすべてのfile:///とは異なるものとして扱われます。
于 2012-10-09T13:53:43.017 に答える