是的,我希望它像Flask框架一样工作 - 在那里我可以设置这样的参数:
static_folder=os.getcwd()+"/static/", static_url_path=""
./static/files/blabla.bla
中的所有文件都可以通过mysite.com/files/blabla.bla
地址访问。我真的不想在static
之后添加mysite.com
。
但是,如果我在Django中设置STATIC_URL = '/'
,那么我可以通过此地址获取静态文件,但突然间我无法获取urls.py
中描述的页面。
答案 0 :(得分:1)
我相信这不是开箱即用的。在我的头脑中,一种方法是使用特殊的404处理程序,它无法与任何已定义的URL匹配,将请求视为对静态资源的请求。这在开发环境中相当容易,但是当nginx,Apache和/或gunicorn参与时会更加困难。
换句话说,不要这样做。嵌套静态(或将它们放在不同的子域上),但不要以这种方式混合URL层次结构。
答案 1 :(得分:1)
使用try_files,使用Nginx很容易实现。使用下面的伪设置将使Nginx首先尝试查找静态文件,如果失败,则执行将传递到您的django应用程序。
server {
...
root /some/path/to/assets/;
try_files $uri @django;
location @django {
...
proxy_pass http://unix:/some/path/to/server.sock;
}
}
示例:文件/some/path/to/assets/myfile.ext
将以http://mydomain/myfile.ext