【问题标题】:What do "static" and "non-static" mean in the context of Express?在 Express 的上下文中,“静态”和“非静态”是什么意思?
【发布时间】:2020-11-24 09:49:38
【问题描述】:

Express 的express.static() 中间件的documentation 声明:

要提供静态文件,例如图像、CSS 文件和 JavaScript 文件,请使用 Express 中的 express.static 内置中间件函数。

似乎包含了动态 React 应用程序的 JS 文件,因为即使 some_build_dir 是前端 React 应用程序,express.static("some_build_dir") 似乎也可以工作。

然而,使用 JS 动态生成 web 内容的 React 应用程序似乎很自然应该被视为 dynamic,而不是 static,所以我在这里缺少一些东西.

:如果连 React 应用程序的源文件都不符合条件,Express 实际上会考虑“非静态”或“动态”哪些类型的东西?

【问题讨论】:

  • “静态”基本上是指文件系统上的实际文件。客户端发生的事情无关紧要。
  • @GuyIncognito 所以,为了确认一下,Express 上下文中“静态”的定义与短语“静态网页”中的“静态”不同,对吗?
  • 是的。 Express 不知道也不关心客户如何处理它发送到那里的东西。
  • 对于服务器,静态文件是那些未被服务器“解析”的文件,例如javascript、样式表、图像、文档等。Express 不在您的构建目录中运行 javascript。与服务器 javascript 文件中的 javascript 不同,Express 直接将其提供给客户端。我知道一开始会令人困惑,因此 +1 以反对投票。

标签: javascript node.js reactjs express middleware


【解决方案1】:

静态:Web 服务器 (Express) 从文件系统读取并未经修改地发送给客户端的文件。

非静态:以编程方式生成的响应(例如,从模板中插入数据库中的数据)。


但是,使用 JS 动态生成 W​​eb 内容的 React 应用程序似乎很自然应该被视为动态的,而不是静态的,所以我在这里缺少一些东西。

就服务器而言,它发送给客户端的 JS 源代码和引导 HTML 文件静态的。它们的动态部分是在服务器控制之外的客户端处理的。

【讨论】:

    【解决方案2】:

    静态中间件表示它是一个静态文件或文件夹,它是一个真实的。 react 应用程序是静态的,代码没有改变,相同的 index.html 将作为静态文件提供给用户,然后内容将随着用户交互和 api 请求而改变,但文件的来源仍然相同且没有改变

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 2011-07-10
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 2017-08-13
      相关资源
      最近更新 更多