我正在尝试在其他设备上查看我本地提供的网站,例如我的手机或其他笔记本电脑。在我目前的笔记本电脑上,网站运行正常,我看到了所有内容(前端),当我访问该网站时,我得到200秒。
然而,当我尝试使用我的iphone和第二台笔记本电脑访问该网站时,我没有看到任何前端,但是当我尝试访问该网站时,我确实获得了200秒。我的工作机器上的终端也告诉我有进入的请求。
我使用Django
作为后端,并使用webpack
捆绑/构建我的Javascript和CSS,并将其与webpack-dev-server
一起提供。
当我运行webpack时,我看到了这样的消息:
http://0.0.0.0:3000/
webpack result is served from http://localhost:3000/public/bundle/
content is served from ./public
当我在工作机器上加载网页时,开发人员工具会显示:
一切正常。
我用这个命令运行django。
$ ./manage.py runserver 0.0.0.0:8000
我的ifconfig
给了我:
inet 192.168.1.102
使用我的第二台笔记本电脑,我访问192.168.1.102:8000
,我的页面上看不到任何内容。我的机器上有一个200
,网站工作意味着请求已经完成。在我的第二台笔记本电脑上,我在开发人员工具中看到了这一点:
请注意/public/
和src
href
在我的第二台机器上,如果我访问192.168.1.102:3000
我看到一个界面,我可以点击192.168.1.102:3000/bundle/main.js
并查看我的webpack内置的javascript。
在我的第二台机器上,我尝试将开发人员工具中的src和href更改为192.168.1.102:3000/bundle/main.js
。但是没有什么会改变,我仍然看到一个空白的屏幕
这是我的webpack配置的gist
:
答案 0 :(得分:4)
我相信你的页面是空的,因为整个“app”是由javascript生成的(至少在你的两个截图中看起来如此,假设<div id="app"></div>
的内容不是由django视图生成的)但是与您的开发计算机不同的客户端无法访问javascript文件。
如果没有settings.py
,urls.py
以及生成主页的view
的代码/模板,很难猜到为什么会发生这种情况,但我们有一些候选人可能会生成此主页问题:CORS,localhost“中毒”,最终导致STATIC_URL配置错误。
localhost:8000
(或192.168.1.102:8000
)和localhost:3000
请求文件。因此,如果您从外部设备/笔记本电脑请求文件,CORS问题将会增加; localhost
是同一台机器
在你的“工作电脑”上作为192.168.1.102,但它不在你的第二个
笔记本电脑或网络中的任何其他设备; {% url %}
或{% static %}
代码生成css和js文件的网址?似乎没有,但它们看起来仍然是动态生成的(即URL中缺少的“公共/”部分)。我不知道使用vanilla Django和相同的设置获得不同路径的方法,所以你应该提供你的视图的源代码,至少,以获得准确的答案。解决方案(或者,至少提示:-)):
localhost
引用(可能需要更改sites
- 请参阅sites framework)或安装https://github.com/owais/django-webpack-loader/(pip install django-webpack-loader
)并按照自述文件或http://owaislone.org/blog/webpack-plus-reactjs-and-django/指南