0

它以前工作正常,我不知道发生了什么变化,但我现在在加载静态文件时遇到错误=(请帮助!

使用 Django 1.4

网址.py

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

设置.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/',
)

页眉.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 和主机页面访问的问题。要确认:

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

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

另一个观察:

  • 浏览器错误中的 index.html URL 是 file:/// url ( file://localhost/Users/blahuusername/djangoproj/abc/abc_app/templates/index.html )。由于跨域资源共享限制,大多数浏览器通常不允许从一个来源加载的页面访问来自不同来源的资源。每个 file:/// URL 都被视为与其他每个 file:/// 不同,即使两者都引用同一文件系统文件夹中的资源。
于 2012-10-09T13:53:43.017 回答