【发布时间】:2023-04-07 18:18:01
【问题描述】:
我在我的笔记本上运行 Ubuntu 14.04,我正在使用 Django 1.6.4(带有 virtualenv)和 Apache 2.4.7。
我已经建立了一个 django 项目,该项目位于我的主目录下 /home/nick/Workspace/Web/kleyboldt_django (kleyboldt 是我正在为其编写这个项目的人的名字)。该文件夹包含我的虚拟env 文件夹(安装了django 和South)、我的kleyboldt.wsgi 和名为kleyboldt_homepage 的实际项目。为了让我的网站准备好投入生产,我编写了一个配置文件来创建一个服务于该网站的 VirtualHost:
/etc/apache2/sites-available/mks.conf
WSGIDaemonProcess mks.com python-path=/home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage:/home/nick/Workspace/Web/kleyboldt_django/env/lib/python2.7/site-packages
WSGIProcessGroup mks.com
<VirtualHost *:80>
Alias /robots.txt /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static/robots.txt
Alias /favicon.ico /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static/favicon.ico
AliasMatch ^/([^/]*\.css) /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static-only/css/$1
Alias /media/ /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static/media/
Alias /static/ /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static/static/
Alias /static/admin/ /home/nick/Workspace/Web/kleyboldt_django/env/lib/python2.7/site-packages/django/contrib/admin/static/admin/
<Directory /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static/static>
Require all granted
</Directory>
<Directory /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static/media>
Require all granted
</Directory>
WSGIScriptAlias / /home/nick/Workspace/Web/kleyboldt_django/kleyboldt.wsgi
ServerName mks.com
Alias /static /home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/static
<Directory /home/nick/Workspace/Web/kleyboldt_django/>
Require all granted
Order allow,deny
Allow from all
</Directory>
<Directory /home/nick/Workspace/Web/kleyboldt_django/env/lib/python2.7/site-packages/>
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我编辑了/etc/hosts 以便将mks.com 重定向到我的本地机器。设置文件如下所示:
/home/nick/Workspace/Web/kleyboldt_django/kleyboldt_homepage/kleyboldt_homepage/settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
...
MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static-only')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static', 'static'),
)
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'static', 'templates'),
)
ADMIN_MEDIA_PREFIX = '/static/admin/'
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'homepage',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
...
在 kleyboldt_homepage/static/ 中有四个文件夹:media(您不应该信任的用户上传的数据)、static(文件夹 css、fonts、img 和 js 用于 Bootstrap )、仅静态(包含admin、css、fonts、img 和 jsafter ./manage.py collectstatic)和templates。
不幸的是,我的管理站点仍然没有 css,并且在源代码中打开 css 文件会导致错误消息。
【问题讨论】:
标签: css django apache django-admin apache-config