Django-使用静态文件的奇怪行为

Django-使用静态文件的奇怪行为,django,django-haystack,url-pattern,Django,Django Haystack,Url Pattern,我是Django的新手。试图理解静态文件(css和图像)的情况让我变得疯狂 问题的复述如下。。。当我使用第三方应用程序(Haystack)的静态视图时,我不能使用静态文件 我的项目具有以下目录结构: 1001empbr (name of the folder for the project) | |------ 1001emp (name of the django project) | |------ 1001empbr (n

我是Django的新手。试图理解静态文件(css和图像)的情况让我变得疯狂

问题的复述如下。。。当我使用第三方应用程序(Haystack)的静态视图时,我不能使用静态文件

我的项目具有以下目录结构:

1001empbr (name of the folder for the project)
   |
   |------ 1001emp (name of the django project)
              |
              |------ 1001empbr (name of my App)
              |------ site_media (folder with static files CSS/JPG/GIF)
              |------ templates (folder with the templates)
当我像这样使用urlpatterns(url.py)时,效果非常好:

import os.path # Para poder suportar static files
from django.conf.urls.defaults import patterns, include, url
from emp1001br.views import *
from emp1001 import settings
from haystack.forms import FacetedSearchForm
from haystack.query import SearchQuerySet
from haystack.views import FacetedSearchView
import datetime

urlpatterns = patterns(
    #'haystack.views',                   
    #url(r'^resultados/$', FacetedSearchView(template='emp1001br/pgresultados.html', searchqueryset=sqs, form_class=FacetedSearchForm), name='haystack_search'),                 
    '',
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), # To support static files
    url(r'^$', main_page),
    (r'^iframe/$', i_frame),
)
当我使用Haystack的静态视图时:

import os.path # Para poder suportar static files
from django.conf.urls.defaults import patterns, include, url
from emp1001br.views import *
from emp1001 import settings
from haystack.forms import FacetedSearchForm
from haystack.query import SearchQuerySet
from haystack.views import FacetedSearchView
import datetime

urlpatterns = patterns(
    'haystack.views',                   
    url(r'^resultados/$', FacetedSearchView(template='emp1001br/pgresultados.html', searchqueryset=sqs, form_class=FacetedSearchForm), name='haystack_search'),                 
    '',
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), # To support static files
    url(r'^$', main_page),
    (r'^iframe/$', i_frame),
)
import os.path#Para poder-suportar静态文件
从django.conf.url.defaults导入模式,包括url
从emp1001br.views导入*
从emp1001导入设置
从haystack.forms导入FacetedSearchForm
从haystack.query导入SearchQuerySet
从haystack.views导入FacetedSearchView
导入日期时间
urlpatterns=模式(
“haystack.views”,
url(r“^resultados/$”,FacetedSearchView(template='emp1001br/pgresultados.html',searchqueryset=sqs,form\u class=FacetedSearchForm),name='haystack\u search'),
'',
(r“^site\u media/(?P.*)$”、“django.views.static.service”、{document\u root:settings.media\u root}),以支持静态文件
url(r'^$',主页),
(r'^iframe/$,i_frame),
)
经过一段时间的浏览,我发现:

0 errors found
Django version 1.3.1, using settings 'emp1001.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[17/Nov/2011 11:50:25] "GET /resultados/?q=m%C3%A9dico HTTP/1.1" 200 10634
[17/Nov/2011 11:50:25] "GET /site_media/estilos.css HTTP/1.1" 500 85526
[17/Nov/2011 11:50:26] "GET /site_media/pgiframe.css HTTP/1.1" 500 85548
[17/Nov/2011 11:50:26] "GET /site_media/logo2.gif HTTP/1.1" 500 85067
[17/Nov/2011 11:50:27] "GET /site_media/banner.jpg HTTP/1.1" 500 85315
Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x1225ed0>>
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/abrt_exception_handler.py", line 147, in <lambda>
    sys.excepthook = lambda etype, value, tb: handleMyException((etype, value, tb))
TypeError: 'NoneType' object is not callable

Original exception was:
Traceback (most recent call last):
  File "/home/andre/python_virtualenv/lib/python2.6/site-packages/django/core/management/commands/runserver.py", line 107, in inner_run
    run(self.addr, int(self.port), handler, ipv6=self.use_ipv6)
  File "/home/andre/python_virtualenv/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 696, in run
    httpd.serve_forever()
  File "/usr/lib64/python2.6/SocketServer.py", line 224, in serve_forever
    r, w, e = select.select([self], [], [], poll_interval)
AttributeError: 'NoneType' object has no attribute 'select'
发现
0个错误
Django版本1.3.1,使用设置“emp1001.settings”
开发服务器正在运行http://127.0.0.1:8000/
使用CONTROL-C退出服务器。
[17/Nov/2011 11:50:25]“GET/resultados/?q=m%C3%A9dico HTTP/1.1”200 10634
[17/Nov/2011 11:50:25]“GET/site_media/estilos.css HTTP/1.1”500 85526
[17/Nov/2011 11:50:26]“GET/site_media/pgiframe.css HTTP/1.1”500 85548
[17/Nov/2011 11:50:26]“GET/site_media/logo2.gif HTTP/1.1”500 85067
[17/Nov/2011 11:50:27]“GET/site_media/banner.jpg HTTP/1.1”500 85315
由启动的线程中存在未处理的异常
sys.excepthook中出错:
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python2.6/site packages/abrt_exception_handler.py”,第147行,在
sys.excepthook=lambda etype,value,tb:handleMyException((etype,value,tb))
TypeError:“非类型”对象不可调用
最初的例外是:
回溯(最近一次呼叫最后一次):
文件“/home/andre/python\u virtualenv/lib/python2.6/site packages/django/core/management/commands/runserver.py”,第107行,在内部运行
run(self.addr,int(self.port),handler,ipv6=self.use\u ipv6)
文件“/home/andre/python\u virtualenv/lib/python2.6/site packages/django/core/servers/basehttp.py”,第696行,正在运行
httpd.永远为你服务()
文件“/usr/lib64/python2.6/SocketServer.py”,第224行,在serve\u中
r、 w,e=select.select([self],[],poll\u interval)
AttributeError:“非类型”对象没有属性“选择”
有什么线索可以解释是什么引起的吗


致以最诚挚的问候,

我不知道这是否能解决问题,但您的url模式看起来有点混乱。每个
urlpatterns
对象的第一个参数应该只有一个字符串。您有
'haystack.views'
,然后是以后的
'

您处于url模式中,因此可以使用空字符串
'
作为前缀

urlpatterns = patterns(
    '',                   
    url(r'^resultados/$', FacetedSearchView(template='emp1001br/pgresultados.html', searchqueryset=sqs, form_class=FacetedSearchForm), name='haystack_search'),                 
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), # To support static files
    url(r'^$', main_page),
    (r'^iframe/$', i_frame),
)
urlpatterns=patterns(
'',                   
url(r“^resultados/$”,FacetedSearchView(template='emp1001br/pgresultados.html',searchqueryset=sqs,form\u class=FacetedSearchForm),name='haystack\u search'),
(r“^site\u media/(?P.*)$”、“django.views.static.service”、{document\u root:settings.media\u root}),以支持静态文件
url(r'^$',主页),
(r'^iframe/$,i_frame),
)

这与静态文件(您无论如何都没有正确使用)完全无关。我想你需要修改你的问题,让它更清楚你想要完成什么。谢谢你的回答。你能给我一个关于这个问题的线索吗?我很少使用Django。如果您在site\u media directoryNice解决方案中使用apache try
SetHandler none
,我只是很快就看到了前缀问题。
urlpatterns = patterns(
    '',                   
    url(r'^resultados/$', FacetedSearchView(template='emp1001br/pgresultados.html', searchqueryset=sqs, form_class=FacetedSearchForm), name='haystack_search'),                 
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), # To support static files
    url(r'^$', main_page),
    (r'^iframe/$', i_frame),
)