Django静态CSS JS图像文件未加载

时间:2012-10-09 12:59:34

标签: jquery django django-staticfiles

之前工作正常,我不知道发生了什么变化,但我现在收到错误,因为静态文件加载=(请帮忙!

使用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.

1 个答案:

答案 0 :(得分:0)

根据您显示的浏览器错误,这似乎不是django-staticfiles问题,但是浏览器跨源策略/ iframe和主机页访问存在问题。确认:

  • 在具有devtools的浏览器(例如Chrome或Safari)中,加载导致错误的页面。
  • 点击“资源”标签,然后点击框架&gt; (主框架的名称)&gt;脚本查找jquery脚本。
  • 单击网络选项卡后重新加载页面,并检查jQuery文件请求的HTTP状态。

如果您可以在资源选项卡中看到jquery-1.7.1.min.js文件内容,并且加载它的请求在网络选项卡中的状态为200或304,则问题不在于django的静态文件服务。

另一个观察结果:

  • 浏览器错误中的index.html网址是一个文件:/// url(文件://localhost/Users/blahusername/djangoproj/abc/abc_app/templates/index.html)。由于跨源资源共享约束,大多数浏览器通常不允许从一个源加载的页面访问来自不同源的资源。每个file:/// URL都被视为与其他所有文件不同:///,即使两者都引用同一文件系统文件夹中的资源。