You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Ubuntu 16服务器后Django静态文件无法加载求助

嘿,我之前在Ubuntu 16上折腾Django+Apache+mod_wsgi部署的时候,也被静态文件加载失败的问题卡过好久。结合你给出的.conf片段,咱们一步步排查可能的问题:

1. 补全并校验Apache配置文件

你给出的配置代码不完整,首先得确保静态文件目录的权限配置完整,同时WSGI脚本的指向也不能错。完整的配置应该类似这样:

Alias /media/ /var/www/fpbg/media
Alias /static/ /var/www/fpbg/static

<Directory /var/www/fpbg/media>
    Require all granted
</Directory>

<Directory /var/www/fpbg/static>
    Require all granted
</Directory>

# 核心:WSGI脚本的路径要精准指向项目里的wsgi.py
WSGIScriptAlias / /var/www/fpbg/fpbg/wsgi.py
<Directory /var/www/fpbg/fpbg>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

这里要特别注意:所有路径必须完全匹配你的实际文件位置,多一层或少一层目录都会出问题。

2. 确认Django静态文件收集的正确性

静态文件加载失败,大概率和collectstatic命令没执行对有关:

  • 先检查项目settings.py里的关键配置,确保这几个参数没写错:
DEBUG = False  # 生产环境必须关闭DEBUG
ALLOWED_HOSTS = ['你的服务器IP/域名']  # 别留空
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/fpbg/static'  # 这个路径必须和Apache Alias里的完全一致
MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/www/fpbg/media'
  • 然后在项目根目录执行收集命令:
python manage.py collectstatic

执行完后,去/var/www/fpbg/static目录下看看,应该能看到所有app的静态文件(比如admin的css、js文件夹)。如果目录是空的,说明收集过程出错了,回去检查settings.py里的INSTALLED_APPS是否包含需要静态文件的app,或者路径有没有拼写错误。

3. 修复文件/目录的权限问题

Ubuntu 16上Apache默认以www-data用户运行,所以静态文件目录必须让这个用户能访问:

# 把目录所有者改成www-data
sudo chown -R www-data:www-data /var/www/fpbg/static
sudo chown -R www-data:www-data /var/www/fpbg/media

# 设置安全的权限(别用777,不安全还可能被Apache拒绝)
sudo chmod -R 755 /var/www/fpbg/static
sudo chmod -R 755 /var/www/fpbg/media
4. 重启Apache并查看错误日志

每次修改配置或权限后,一定要重启Apache生效:

sudo service apache2 restart

如果还是不行,直接看Apache的错误日志找线索——这是最有效的排查方式:

sudo tail -f /var/log/apache2/error.log

日志里会明确告诉你问题,比如“Permission denied”(权限不够)、“File not found”(路径错了),照着提示改就行。

5. 检查mod_wsgi的Python版本兼容性

最新版Django一般用Python3,但Ubuntu 16默认的mod_wsgi可能是Python2版本的,这会导致静态文件收集或加载异常:

  • 先检查当前mod_wsgi绑定的Python版本:
mod_wsgi-express module-config

如果输出里是Python2的路径,赶紧安装Python3版本的mod_wsgi:

sudo apt-get install libapache2-mod-wsgi-py3
sudo a2enmod wsgi
sudo service apache2 restart

内容的提问来源于stack exchange,提问作者Tural

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:09:14