我是 Django 开发的新手,到目前为止,这个网站非常宝贵,我对我学到的东西印象深刻。话虽如此,我遇到了一个问题,我一直在浏览这个网站上的相关帖子,但似乎找不到任何可以解决我的问题的东西。
所以我希望你们中的一个人能够看看我在做什么,并指出我正确的方向。我正在尝试让我的 Apache Web 服务器为 Django 的管理页面提供 CSS 文件。但是,当访问: 时http://localhost/admin/
,我得到了错误:Forbidden. You don't have permission to access /admin/ on this server.
我站点mysite/static
的 CSS/JS 位于 Django 安装文件夹中,管理页面的 CSS/JS 位于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/
,我会收到权限错误。