Django nginx:使用别名url提供静态内容

Django nginx:使用别名url提供静态内容,django,web-services,nginx,static,http-status-code-404,Django,Web Services,Nginx,Static,Http Status Code 404,我正在使用django和rest框架编写一个web服务,并使用nginx作为我的web服务器 客户机将使用标准REST方法处理API。其中一个模块允许用户上传照片,该服务将名称更改为随机字符串,并将其保存在以下位置:/home/myProject/files/user content/,如: /home/myProject/files/user content/bb7dfb3436d4b638e50040cf91b8d9d.png 在API级别,一切正常。但是我希望用户能够获得他们上传的文件:/

我正在使用django和rest框架编写一个web服务,并使用nginx作为我的web服务器

客户机将使用标准REST方法处理API。其中一个模块允许用户上传照片,该服务将名称更改为随机字符串,并将其保存在以下位置:
/home/myProject/files/user content/
,如:
/home/myProject/files/user content/bb7dfb3436d4b638e50040cf91b8d9d.png

在API级别,一切正常。但是我希望用户能够获得他们上传的文件:
/image/:filename
比如:
http://mydomain/images/bb7dfb34336d4b638e50040cf91b8d9d.png

为了实现这一点,我对nginx的配置如下:

server {
    listen 80;
    error_page   404        /index.html;

    root /home/webworker/landingpage/Page;
    index index.html index.htm;

    server_name localhost;

    location / {
                 proxy_pass http://0.0.0.0:8001;
                 proxy_set_header X-Forwarded-Host $server_name;
                 proxy_set_header X-Real-IP $remote_addr;
                 add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
    }

     location ~ ^/images/(.*)$ {
             alias /home/myProject/files/user-content/$1;
             access_log on;
             index index.html;
             autoindex off;
             gzip_static on;
             # expires max;
             sendfile off;
             add_header Cache-Control no-cache;
     }
}

nginx服务启动时没有错误,但输入我认为应该可以工作的URL会返回
404notfound
。顺便说一句,这些文件对所有用户都有读取权限。

替换此行

location ~ ^/images/(.*)$ {


这应该可以满足您的需要。

您看过nginx日志了吗?它们可能会解释什么不起作用。@Alasdair是的,我看过,没有任何帮助……您能检查nginx访问和错误日志吗?你能确定图像在那里吗@RezaShayestehpouras我说过,图像在我指向的文件夹中,并且具有适当的权限。关于日志:与获取映像相关的是:
MYIPADDRESS-[17/Sep/2015:08:11:29-0400]“GET/images/bb7dfb3436d4b638e50040cf91b8d9d.png HTTP/1.1“404151”-“Mozilla/5.0(Macintosh;Intel Mac OS X 10_10_5)AppleWebKit/600.8.9(KHTML,像Gecko)Version/8.0.8 Safari/600.8.9”
,只是关于将localhost更改为0.0.0.0:80的一些警告您还可以尝试将别名更改为alias/home/myProject/files/user content/?对于测试,只需每隔一行注释一次。我觉得你的地址系统可能有问题@Rezashayestehpourok问题不在于此配置文件,而在于其他地方@RezaShayestehpour
location /images/ {