如何在本地网络中的移动设备中启用热重新加载?(Django&x2B;网页包开发服务器) 问题:

如何在本地网络中的移动设备中启用热重新加载?(Django&x2B;网页包开发服务器) 问题:,django,webpack-dev-server,Django,Webpack Dev Server,在使用Django和webpack dev server时,如何启用javascript内容的热重新加载?即使开发机器的本地IP地址发生变化,理想的解决方案也会起作用。(这种情况时有发生) 当前设置 我在经营django python manage.py runserver 0.0.0.0:5555 我可以在同一个wifi中使用手机连接到开发服务器。我通过以下方式获得正确的IP地址: import socket local_ip = socket.gethostbyname(socket.g

在使用Django和webpack dev server时,如何启用javascript内容的热重新加载?即使开发机器的本地IP地址发生变化,理想的解决方案也会起作用。(这种情况时有发生)


当前设置 我在经营django

python manage.py runserver 0.0.0.0:5555
我可以在同一个wifi中使用手机连接到开发服务器。我通过以下方式获得正确的IP地址:

import socket
local_ip = socket.gethostbyname(socket.gethostname())
print('Developing locally. Access through wifi: {}:5555'.format(local_ip))
它打印出类似于

Developing locally. Access through wifi: 192.168.8.105:5555
使用这个设置,我可以看到django提供的任何HTML内容

然后,我添加了一个简单的React组件和django webpack加载程序(v.0.5.0)。我正在使用命令“node server.js”和以下“server.js”运行webpack dev server:

config.output.publicPath在另一个文件中定义,它是config.output.publicPath='http://'+ip+':3003'+'/assets/bundles/'

通过此设置,React组件将显示在开发计算机(at)的页面上。此外,热重新加载也可以工作(仅保存JS文件将导致重新加载网页上的组件)


然而在同一个wifi中的移动设备上,我只能看到HTML部分,但看不到React/JavaScript部分。使用Google开发者工具和USB电缆,我可以看到移动浏览器无法访问文件“
http://localhost:3003/assets/bundles/app-6d6d5c0dad55fc4b0e9e.js
“由网页包开发服务器生成(网络::错误连接被拒绝)。您将如何正确设置此选项?我还尝试将所有“localhost”部分更改为0.0.0.0,但即使在开发机器上也没有显示任何内容(基本HTML除外)。

就像Django开发服务器一样,将
ip
变量更改为
0.0.0
,而不是
localhost
。您的手机正在手机中搜索服务器,但未找到该服务器。这将设置要连接到的相应IP地址

var ip = '0.0.0.0'
更新:您应该尝试删除
http://0.0.0.0:3003
在公共路径的一部分,将/保留在开头。这样,浏览器将在URL指向的任何主机上获取捆绑包

publicPath: '/assets/bundles/',

与Django开发服务器一样,将
ip
变量更改为
0.0.0
,而不是
localhost
。您的手机正在手机中搜索服务器,但未找到该服务器。这将设置要连接到的相应IP地址

var ip = '0.0.0.0'
更新:您应该尝试删除
http://0.0.0.0:3003
在公共路径的一部分,将/保留在开头。这样,浏览器将在URL指向的任何主机上获取捆绑包

publicPath: '/assets/bundles/',
一个有效的解决方案(也许有更好的方法,但这对我来说已经足够好了):

安装内部ip (或任何其他可以将内部IP输出到变量的npm包)

告诉webpack开发服务器在本地ip上运行 (同时连接到,
server.js
config.output.publicPath='http://'+ip+':3003'+'/assets/bundles/'
,后者在
webpack.local.config
-文件中定义。)。我还从“server.js”文件中删除了
主机:“1ocalhost”
-行。

一个有效的解决方案(也许有更好的方法,但这对我来说已经足够好了):

安装内部ip (或任何其他可以将内部IP输出到变量的npm包)

告诉webpack开发服务器在本地ip上运行
(同时连接到,
server.js
config.output.publicPath='http://'+ip+':3003'+'/assets/bundles/'
,后者在
webpack.local.config
-文件中定义。)。我还从“server.js”文件中删除了
主机:“1ocalhost”
-行。

谢谢您的输入。这是我在许多地方找到的答案,但不幸的是,我正在Windows机器上开发,这不起作用。使用ip=
0.0.0.0
React组件即使在开发机器上也不会显示。(它给出了一个
加载资源失败:net::ERR_CONNECTION_densed
-JS bundles错误。)我还尝试将publicPath更改为
'/assets/bundles/'
,但现在我得到了
GEThttp://127.0.0.1:5555/assets/bundles/app-87d619513edb993e5345.js 404(未找到)
在我的开发机器上。请尝试向您的问题添加更多数据,特别是webpack配置的一部分,端口5555是在哪里定义的?端口5555是在django的“runserver”命令中定义的,如上所示。事实上,我得到了热重新加载工作,并可以张贴一个aswer。谢谢你的输入。这是我在许多地方找到的答案,但不幸的是,我正在Windows机器上开发,这不起作用。使用ip=
0.0.0.0
React组件即使在开发机器上也不会显示。(它给出了一个
加载资源失败:net::ERR_CONNECTION_densed
-JS bundles错误。)我还尝试将publicPath更改为
'/assets/bundles/'
,但现在我得到了
GEThttp://127.0.0.1:5555/assets/bundles/app-87d619513edb993e5345.js 404(未找到)
在我的开发机器上。请尝试向您的问题添加更多数据,特别是webpack配置的一部分,端口5555是在哪里定义的?端口5555是在django的“runserver”命令中定义的,如上所示。我实际上得到了热重新加载工作,并可以张贴aswer.host:“1ocalhost”,是不正确的…主机:“1ocalhost”,是不正确的。。。
var ip = require('internal-ip').v4()