我写了一个简单的网络应用程序,我试图弄清楚如何服务器静态文件。我的静态文件文件夹位于不同的文件夹/usr/lib/python2.6/site-packages/web3/static
下面是我的代码,如何将此静态文件文件夹配置添加到我的应用程序。
#!/usr/bin/env python
import sys
import my_web.settings
from django.core.management import execute_from_command_line
from django.core.management import call_command
import os
import tempfile
import cherrypy.wsgiserver
import django.core.handlers.wsgi
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_web.settings")
# Since we use a throwaway database, it needs to be initialized
# every time Django starts.
if sys.argv[1] in ('runserver', 'shell'):
with tempfile.NamedTemporaryFile() as dbFile:
my_web.settings.DATABASES['default']['NAME'] = dbFile.name
call_command('syncdb', interactive=False)
server = cherrypy.wsgiserver.CherryPyWSGIServer(
('0.0.0.0', 8080), django.core.handlers.wsgi.WSGIHandler(),
server_name='localhost', numthreads = 10
)
try:
server.start()
except KeyboardInterrupt:
server.stop()
答案 0 :(得分:0)
试试这个......并确保运行该应用的用户有权访问静态路径。
cherrypy.config.update({'tools.staticdir.on': True,
'tools.staticdir.dir': '/usr/lib/python2.6/site-packages/web3/static'
})
希望这有帮助!
答案 1 :(得分:0)
Sylvain Hellegouarch发布了一个Django CherryPy集成配方,很好地解决了提供静态Django内容的问题。见https://bitbucket.org/Lawouach/cherrypy-recipes/src/c8290261eefb82cb5694930f7236606082a941ff/frameworks/django_/?at=default
只需将三个python文件( init .py,httplogger.py和djangoplugin.py)放入应用程序上方的目录中,然后更改包含settings.py文件的目录的名称 init .py以匹配您自己的源代码树中的目录。
我还从 init .py中删除了两个WebSocketPlugin行,因为这与我的django应用程序无关。
关于Sylvain博客http://www.defuze.org/archives/262-hosting-a-django-application-on-a-cherrypy-server.html
的食谱有一些讨论