2012-10-09 99 views
0

它以前工作正常,我不知道是什麼改變了,但我發現錯誤,現在的靜態文件加載=(請幫幫忙!Django的靜態CSS JS圖像文件不加載

使用Django 1.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. 
+0

你可以執行命令:python manage.py findstatic js/jquery-1.7.1.min.js?什麼是輸出? –

+0

在此處找到'js/jquery-1.7.1.min.js': /Users/blahusername/djangoproj/abc/static/js/jquery-1.7.1.min.js – user1678031

回答

0

這看起來並不像基於瀏覽器的錯誤,你都表現出了Django的staticfiles問題,但隨着瀏覽器跨域策略/ iframe和主機的問題頁面訪問。要確認:

  • 在具有devtools(例如Chrome或Safari)的瀏覽器中,加載導致錯誤的頁面。
  • 點擊「資源」選項卡,並在框架>(您的主框架的名稱)>腳本查找jquery腳本。
  • 點擊網絡選項卡後重新加載頁面,並檢查jQuery文件請求的HTTP狀態。

如果您可以在資源選項卡中看到jquery-1.7.1.min.js文件內容,並且加載它的請求在網絡選項卡中的狀態爲200或304,則問題不在於在django的靜態文件服務中。

另一種看法:

  • 在瀏覽器中的錯誤中的index.html URL是一個文件:/// URL(文件://本地主機/用戶/ blahusername/djangoproj/ABC/abc_app /模板/指數.html)。由於跨源資源共享的限制,大多數瀏覽器通常不允許從一個來源加載的頁面訪問來自不同來源的資源。每個文件:/// URL被視爲不同於其他每個文件:///,即使這兩個文件都引用同一個文件系統文件夾中的資源。