使用Django 2.0.2时django-livereload-server访问localhost:35729报404求助
我之前在使用django-livereload-server时也碰到过类似的坑,给你一步步排查解决:
- 先纠正访问端口的误区:你不需要直接访问
localhost:35729!这个端口是livereload后台服务用来和浏览器插件通信的,正常访问你的Django项目应该用默认的开发端口(比如localhost:8000)。运行python manage.py livereload后,Django会同时启动8000端口的服务和35729的livereload监听,你只需要访问8000端口即可。
如果访问8000端口还是没实现实时重载,或者静态文件加载有问题,继续排查以下配置:
检查INSTALLED_APPS配置
确保'livereload'已经添加到settings.py的INSTALLED_APPS里,而且要放在'django.contrib.staticfiles'之后:INSTALLED_APPS = [ # 其他apps... 'django.contrib.staticfiles', 'livereload', ]确认MIDDLEWARE配置
添加livereload中间件到MIDDLEWARE列表,建议放在靠前的位置(比如最前面),避免被其他中间件拦截:MIDDLEWARE = [ 'livereload.middleware.LiveReloadScript', # 其他中间件... ]确保DEBUG模式开启
livereload仅在开发环境生效,所以settings.py里必须设置:DEBUG = True验证静态文件基础配置
先确认不用livereload时静态文件能正常访问:- 检查
STATIC_URL是否设置正确(比如STATIC_URL = '/static/') - 如果有自定义静态文件目录,确认
STATICFILES_DIRS配置正确:STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ]
- 检查
安装并启用浏览器livereload插件
你需要在浏览器(比如Chrome、Firefox)安装LiveReload扩展,安装完成后点击插件图标,让它变成实心状态(表示已连接到35729端口的livereload服务)。检查版本兼容性
Django 2.0.2比较老,要确保安装的django-livereload-server版本兼容。可以安装适配的版本:pip install django-livereload-server==2.5.0尝试指定端口启动
有时候端口冲突会导致问题,试试明确指定Django服务端口:python manage.py livereload --port 8000然后访问
localhost:8000,同时确认浏览器插件已连接。排查端口拦截问题
本地防火墙、代理工具可能会阻止35729端口的连接,暂时关闭防火墙或代理,再测试插件是否能正常连接。
内容的提问来源于stack exchange,提问作者Mohamed Benkedadra

