【发布时间】:2019-12-10 07:08:02
【问题描述】:
我想在我的 Linux 服务器上部署一个 Django 应用程序。我遵循了 Django 文档,甚至还配置了 Apache 配置文件,但是在运行 Django 服务器时,我的 CSS 和 JS 文件都看不到:我的网站、Django 管理界面和 rest_framework。
这是我目前所做的:
在启动“collectstatic”命令后创建了一个“静态”文件夹,其中包含以下内容:
blog_app (my website)
rest_framework (my APIs)
admin (Default Django Admin interface)
settings.py:
DEBUG = False
[.] #all default settings
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'DEFAULT_AUTHENTICATION_CLASSES' : [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}
Apache 配置文件(我将其命名为“django_app.conf”):
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
#django_app is the root folder for my Django project
Alias /static /var/user/django_app/static
<Directory /var/user/django_app/static>
Require all granted
</Directory>
<Directory /var/user/django_app/django_app>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /var/user/django_app/django_app/wsgi.py
WSGIDaemonProcess my_django_app python-path=/var/user/django_app python-home=/var/user/django_app/venv
WSGIProcessGroup my_django_app
之后,我输入:
sudo a2ensite django.conf #to allow my Apache config file instead of 000-default.conf
还有:
sudo a2dissite 000-default.conf #to disallow original Apache2 config file
然后我为我的根项目文件夹添加了 www-data 用户权限:
sudo chown :www-data /var/user/django_app/
我还为我的根 Django 项目添加了读、写和执行权限:
sudo chmod 775 /var/user/django_app/
在这之后,我执行了这个命令:
sudo service apache2 restart
最后,我在根文件夹中执行了 Django 服务器:
python3 manage.py runserver <IP Address>:8000
但是,当查看我的网站、Django 管理界面和 Django Rest Framework HTML 页面时,没有涉及到静态文件(缺少 CSS 和 JS 文件)。
谁能给我解释一下怎么回事?我错过了什么吗?
【问题讨论】:
标签: django python-3.x apache2 web-deployment