【问题标题】:How do you send files (html, js, css and resources) when using socket.io?使用 socket.io 时如何发送文件(html、js、css 和资源)?
【发布时间】:2015-03-12 13:49:42
【问题描述】:

我正在尝试创建一个 Web 应用程序,让服务器以时间间隔更新浏览器页面上的 html 材料 - 一个 html 幻灯片。

我的文件结构如下:

项目:

- 节点模块
- app.js
- index.html - 包.json
- 幻灯片
-- 幻灯片_0
-- page.html
--- 图片
---- 一些 .jpg 文件
--- js
---- script.js
--- 样式
---- style.css
-- slide_X ...等

我现在可以使用fs.readFile(__dirname + "slides/slide_0/page.html") 向客户端发送字符串表示形式,并在回调中保存字符串并在socket.on('connection') 发出。

目标是在 index.html / 客户端中有一个div,我可以在其中附加 page.html 中的所有代码(即 page.html 不需要完全格式化,<p> Hello World </p> 可以够了)。另外,我希望 page.html 能够拥有自己的 .js.css 和资源(如上面的文件结构所示)。

可以在 html 中包含导入(link src="..."script src="..."),我可以将其附加到 div,它只是一个字符串。但是,我不知道如何使用资产文件(.js.css.jpgs)。

我正在使用 Express 但我不是很擅长,就像 socket.io 一样。

  • 那么,如何将必要的文件发送给客户端?
  • 我用什么方法来发送 html+文件?
  • 其他结构会更好吗?例如,完全格式化的 HTML。

谢谢!

【问题讨论】:

    标签: javascript node.js html express socket.io


    【解决方案1】:

    我找到了答案和一个让它很难工作的大错误。

    所以,我可以使用 jquery .empty() div,然后将读取的 html 文件附加为字符串表示形式。调试时我发现浏览器尝试执行的GETs 不正确,这就是整个错误。

    目前我有一个接受所有 GET 的快速获取处理。但是,在 page.html 中,我使用了与其文件结构相关的 srcs 和 refs - 必须对其进行修改,以便它从 node-server-base 而不是 html-file-structure-base 开始。

    因此,使用socket.io 发送代码(以字符串格式)并将其附加到现有 HTML 是没有问题的。只需确保服务器允许访问源文件并且网址正确!

    【讨论】:

      猜你喜欢
      • 2019-09-03
      • 2016-07-25
      • 2019-12-13
      • 2021-01-06
      • 2014-01-21
      • 2018-03-28
      • 1970-01-01
      • 2013-12-20
      • 2019-01-09
      相关资源
      最近更新 更多