我已经在我自己的django环境中开发了一段时间,现在使用manage.py runserver
没有任何问题,但现在我们有一个设计师和一个前端开发人员需要处理该项目,我发现自己不知道什么是他们环境的最佳实践。
我可以要求他们设置自己的python环境,但这要求非常多,因为他们不是Python人员而且他们正在运行Windows(我的开发人员和生产环境都是Linux)。
相反,我将它们设置在远程服务器上,即可在本地安装的磁盘。但是,在此设置中,我实际上使用manage.py runserver ip:port
实例中运行的screen
的不同实例。它不能很好地处理常量重载(我们的设计人员常见),并且由于开发服务器的单线程特性而不时挂起。我想知道如何用Apache设置它。
这个问题当然是staticfiles
。每当上述任何一方想要添加或更改静态文件时,他们都必须运行manage.py collectstatic
,这是不切实际的。我只是不知道其他任何方式。我发现使用Apache的所有文档都是针对生产环境的,所以......这就是我在这里的原因。
答案 0 :(得分:0)
来源控制?让他们检查更改,然后设置post commit钩子到collectstatic并重新启动服务器。有了漂亮的Windows GUI,我从来没有一个设计师无法掌握基本概念。如果你正在使用dcvs,你可以随时将它们放在自己的fork中,这样你就必须合并到主要的repos中,以防止它们错误地破坏其他东西。
答案 1 :(得分:0)
这个问题的答案比我想象的还要简单很多我很抱歉让那些回应的人感到困惑。基本上我想要的是在./manage.py runserver ip:port
会话中以比screen
更稳定的方式托管我们设计人员的开发环境的方法。我认为必须有一种方法可以为Apache设置这样的东西,但不知道它是什么。
这就是我的工作:
在settings.py
中,将STATIC_URL
和MEDIA_URL
变量设置为相对网址。就我而言,我使用了/static/
和/media/
。
MEDIA_ROOT = PROJECT_ROOT + "/htdocs/media/"
MEDIA_URL = "/media/"
SERVE_STATIC = True
STATIC_ROOT = PROJECT_ROOT + "/htdocs/public/"
STATIC_URL = "/static/"
如果您根本没有任何静态文件,就像配置Apache一样。换句话说,请忽略文档的建议,以便在SetHandler None
块中使用<Locaiton>
。
<VirtualHost *:80>
WSGIScriptReloading On
WSGIDaemonProcess someprocessname
WSGIProcessGroup somegroupname
WSGIApplicationGroup somegroupname
WSGIPassAuthorization On
WSGIScriptAlias / /path/to/config.wsgi
ServerName somewhere.awesome.ca
<Location "/">
Order Allow,Deny
Allow from all
</Location>
ErrorLog /var/log/apache2/somewhere.awesome.ca.err
CustomLog /var/log/apache2/somewhere.awesome.ca.log combined
</VirtualHost>
staticfiles
我希望这有助于指出某人在未来朝着正确的方向发展。