2011-08-23 108 views
1

我在解决django中的媒体路径问题时遇到了一些问题。在settings.py文件中,我有ADMIN_MEDIA_PREFIX ='/ media/admin /'。像forms.css所以一定CSS和JS文件,RelatedObjectLookup.js文件有这样django媒体路径问题

/media/admin/js/admin/RelatedObjectLookup.js 和/media/admin/css/forms.css的路径。

我的项目中没有像/ media/admin这样的文件夹。但是,当我使用manage.py脚本运行服务器并浏览页面时,上述css和js文件正在加载。我可以看到文件forms.css和RelatedObjectLookup.js在django本身中。但是,我对django本身的路径感到困惑。它是这样的

/usr/local/lib/python2.7/site-packages/django/contrib/admin/media/js/calendar.js

所以,我很困惑,怎么也文件被抓取。在服务器日志中,我可以看到其他文件的GET请求,但不是这些文件(forms.css和RelatedObjectLookup.js)

运行manage.py后,我在myserver请求日志中显示以下内容。

[23/Aug/2011 02:20:36] "GET /media/js/DateTimeShortcuts.js HTTP/1.1" 304 0 
[23/Aug/2011 02:20:36] "GET /media/js/custom/new_appointment_new.js HTTP/1.1" 304 0 
[23/Aug/2011 02:20:36] "GET /media/js/fancybox/jquery.mousewheel-3.0.4.pack.js HTTP/1.1" 304 0 
[23/Aug/2011 02:20:36] "GET /media/js/fancybox/jquery.fancybox-1.3.4.pack.js HTTP/1.1" 304 0 
[23/Aug/2011 02:20:36] "GET /media/js/fancybox/jquery.fancybox-1.3.4.css HTTP/1.1" 304 0 

正如你可以没有请求forms.css和RelatedObjectLookup.js文件。

有什么建议吗?

+0

可能没有请求,因为它们保存在浏览器的缓存中?尝试强制刷新,或使用一些工具,如HttpFox。 –

回答

1

ADMIN_MEDIA_PREFIX是一个URL路径。如果您使用runserver运行服务器,则Django的服务器负责将请求解析为http://localhost/media/admin/whatever.js并提供管理员的静态文件。它不会将这些文件的GET请求打印到控制台。

Howewver,如果您没有运行runserver,那么您必须确保ADMIN_MEDIA_PREFIX指定的路径实际上为管理员提供了静态文件。例如,在我们的一个网站中,我们的STATIC_URLhttp://static.oursite.com/,我们的STATIC_ROOT/srv/django-static/oursite/ADMIN_MEDIA_PREFIX设置为http://static.oursite.com/admin/。当我们运行python manage.py collecstatic时,它会获取所有的静态文件并将它们放入STATIC_ROOT。它还在STATIC_ROOT中创建一个名为admin的文件夹,并将所有管理员的文件放在那里。一个不同的服务器负责提供http://static.oursite.com/上的东西,它只是提供STATIC_ROOT文件夹,其中也包含admin文件夹。这样,正常的静态文件就可以得到解决,同样也可以用于管理员。