访问Apache提供的Django管理页面时出现权限错误

时间:2013-08-12 21:44:43

标签: django apache django-admin apache2

我是Django开发的新手,到目前为止这个网站已经非常宝贵,我对我学到的东西印象深刻。话虽这么说,我遇到了一个问题,我一直在爬这个网站上的相关帖子,但似乎找不到任何解决我的问题。

Here is what I've tried but no luck

所以我希望你们中的一个人能够看看我正在做的事情,并指出我正确的方向。我试图让我的Apache Web服务器为Django的管理页面提供CSS文件。但是,在访问:http://localhost/admin/时,我收到错误:Forbidden. You don't have permission to access /admin/ on this server.

我网站的CSS / JS位于mysite/static,管理页面的CSS / JS位于Django安装文件夹Django-1.5/django/contrib/admin/static/admin。以下是我的settings.py文件中的相关位:

STATIC_ROOT = '/home/me/Desktop/djcode/mysite/production_static'
STATIC_URL = '/static/'
STATIC_DIRS = (
    "/home/me/Django-1.5/django/contrib/admin/static/admin",
    "/home/me/Desktop/djcode/mysite/static",
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    #'django.contrib.staticfiles.finders.DefaultStorageFinder',

)

我运行python manage.py collectstatic命令从我的两个目录位置提取所有必要的静态文件,并将它们放在我项目文件夹中名为production_static的文件夹中。

以下是production_static文件夹布局:

$ cd production_static
$ ls
admin css images img js

admin文件夹包含管理页面显示所需的所有静态文件。但由于某种原因,css文件夹包含我的网站的CSS以及管理员CSS。与js文件夹相同。 images文件夹是我网站的图片,img文件夹是管理网站的图片。我不知道为什么collectstatic命令正在制作管理员静态文件的两个副本。

这是Apache的httpd.conf文件:

AliasMatch ^/([^/]*\.css) /home/me/Desktop/djcode/mysite/production_static/css/$1
AliasMatch ^/([^/]*\.css) /home/me/Desktop/djcode/mysite/production_static/admin/css/$1

Alias /media/ /home/me/Desktop/djcode/mysite/media/
Alias /static/ /home/me/Desktop/djcode/mysite/production_static/
Alias /admin/ /home/me/Desktop/djcode/mysite/production_static/admin/

<Directory /home/me/Desktop/djcode/mysite/production_static>
Order deny,allow
Allow from all
</Directory>

<Directory /home/me/Desktop/djcode/mysite/media>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / /home/me/Desktop/djcode/mysite/mysite/wsgi.py
WSGIPythonPath /home/me/Desktop/djcode/mysite    

<Directory /home/me/Desktop/djcode/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

我确保每次更改httpd.conf文件时都会重新启动Apache服务器。

这是我的urls.py文件:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', 'mysite.views.homepage_view'),
    # other url-view mappings here
    url(r'^admin/', include(admin.site.urls)),
)

我的主页和其他页面加载正常。 CSS和JS都很精彩。就在我尝试访问http://localhost/admin/时,我收到权限错误。

1 个答案:

答案 0 :(得分:1)

摆脱这个别名:

Alias /admin/ /home/me/Desktop/djcode/mysite/production_static/admin/