我在开发模式下搜索多个文件夹中的静态文件时遇到了麻烦。
当然我知道使用os.path.listdir
或其他方法执行搜索的简单方法,但我正在寻找一种尽可能保持开发和生产代码一致的方法。
我有以下情况: 多个应用程序具有单独的静态文件夹和项目范围的静态文件夹,工作正常。
但我有一个查找特定文件的方法,我想确保搜索所有文件夹。
当然,我可以通过阅读settings.STATICFILES_DIR[]
构建这些路径并找出应用程序有'static/'
个文件夹,但我想知道这是否意味着重新发明轮子。
是否有一种特殊的开发模式方法,可以提供所有可用静态文件夹的列表或类似内容?
如果可能的话,我想避免在我的代码中使用特殊的调试案例,因为它对我来说似乎不是非常pythonic。但如果我在这里错了,请纠正我。
答案 0 :(得分:0)
为什么要在开发模式下搜索静态文件?
使用方便:
python manage.py colelctstatic -l
就像在制作中一样。
Django开发服务器服务静态非常慢。 而且你不经常添加静态文件。 在未加载静态文件时不要忘记输入此命令将会很困难。但随着时间的推移,你会记住它并且会很开心。相信我;)
我使用这样的nginx配置:
server {
server_name my-site.de;
location /{
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 10;
proxy_pass http://localhost:8021/; #<- unique port for project
}
location /static {
autoindex off;
alias /home/noname/develop/my-site/my-site/proj_static;
if ($query_string) {
expires max;
}
}
location ^~ /media/ {
autoindex off;
alias /home/noname/develop/my-site/my-site/media/;
if ($query_string) {
expires max;
}
}
}
在/ etc / hosts中有记录: 127.0.0.1 my-site.de
我开发的每个网站。 因此,只需在网址中将“com”更改为“de”即可轻松打开本地版本。
如果你向manage.py添加一些行:
if sys.argv[1] == 'runserver' and len(sys.argv)==2:
sys.argv.append('0.0.0.0:8021')
您可以同时运行多个项目,并通过URL访问它们,如: http://project1.de,http://project2.de