为什么我的Apache看不到我的媒体文件夹?

问题描述:

Alias /media/ /home/matt/repos/hello/media 
<Directory /home/matt/repos/hello/media> 
Options -Indexes 
Order deny,allow 
Allow from all 
</Directory> 
WSGIScriptAlias//home/matt/repos/hello/wsgi/django.wsgi 

/media是我的目录。当我去mydomain.com/media/时,它说403 Forbidden。而且,我的网站的其他部分无效,因为所有静态文件都是404。为什么?页面加载。只是不是媒体文件夹。为什么我的Apache看不到我的媒体文件夹?

编辑:hello是我的项目文件夹。 我已经试过777该文件夹的所有权限。

+0

我认为这是权限问题。 '文件夹中的chmod 666',它应该可以正常工作。 – 2010-03-24 10:39:03

+0

nope,我已经完成了chmod 777,但它仍然不起作用。 – TIMEX 2010-03-24 10:48:32

+0

但是,它确实在我的Django开发服务器上工作。 – TIMEX 2010-03-24 10:50:20

您禁用了索引,因此当您请求目录/介质时(而不是显示403 Forbidden错误),Apache不会生成这些文件的列表。尝试在那里直接访问文件,例如:http://localhost/media/some_image.jpg

+0

我试着访问它。这是404。 – TIMEX 2010-03-24 10:35:52

+2

@alex:你真的在'/ home/matt/repos/hello/media'中有一个名为'some_image.jpg'的文件吗? – mojbro 2010-03-24 10:39:20

+0

是的,我喜欢。这是404。我猜这是与Alias有关,因为Apache访问我的页面并加载它。只有静态的东西是404。 – TIMEX 2010-03-24 10:45:59

如果内存正确地为我提供服务,Apache将在它自己的用户帐户下运行。您确定此帐户对该目录具有正确的权限吗?

+0

是的。它访问一切正常。只是没有那个媒体文件夹。 – TIMEX 2010-03-24 10:38:15

它的所有关于短跑Options -Indexes ,这里是一个完整的Editon到你

Alias /media/ /home/matt/repos/hello/media 
<Directory "/home/matt/repos/hello/media"> 
    Options Indexes 
    AllowOverride all 
    Order Deny,Allow 
    Allowfrom all 
</Directory 

我很想加入

AllowOverride all 

随意删除:)

在我看来,WSGIScriptAlias//home/matt/repos/hello/wsgi/django.wsgi告诉Apache,指定的WSGI脚本将处理/下的所有内容。这也包括/媒体。你应该告诉Apache从该规则中排除/媒体。

尝试添加该到您的配置文件:

<LocationMatch "^/media/"> 
SetHandler None 
</LocationMatch> 

的船艇/ media下比赛的一切,但文件正则表达式并替换WSGIScriptAlias符合这样的:

WSGIScriptAliasMatch <regex> /home/matt/repos/hello/wsgi/django.wsgi 

我解决它。我错过了一个斜线。之后媒体/