当前位置: 首页 > 面试题库 >

资源未以快递方式加载

墨阳羽
2023-03-14
问题内容

可以说我正在index.html通过express服务器提供根目录中的以下文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<h1>Hello</h1>

<script src="/public/system.js"></script>
<script src="/public/config.js"></script>
<script>System.import("app/main")</script>
</body>
</html>

无论system.jsconfig.js当前正在使用公共目录文件夹。

index.html加载这些文件,我必须在app.js文件中包含以下行,以便可以在公用文件夹中搜索请求:

app.use(express.static(path.join(config.root, 'public')));

为什么会这样呢?index.html由于src资源路径正确,为什么不能正确引用没有上一行的文件?同样适用app/main。是否确实必须通过静态静态提供index.html使用的每个资源app.use()


问题答案:

默认情况下,node.js
Web服务器不提供任何文件。因此,仅因为您有一条服务于的路由,index.html并不意味着node.js可以服务于任何其他文件。node.js与其他Web服务器不同,它们首先将自己视为文件服务进程,其次将其视为应用程序服务器。node.js可让您完全控制,默认情况下不提供文件。如果希望它为静态文件(例如脚本文件)提供服务,那么app.use(express.static(...))一行代码将导致它为特定目录中的所有文件提供服务。

如果您要问为什么为index.html提供服务的同一静态路由不能为其他两个文件提供服务,则可能只是路径和文件位置未对齐而无法正确找到的情​​况。由于您尚未真正提供文件系统结构或路径结构的完整详细信息,因此我们无法提供有关应更改内容的确切详细信息。

如果system.js和config.js与index.html位于同一目录中,则应从其脚本标签前面删除路径。如果它们不在同一目录中,则可能需要另一个app.use(express.static(...))覆盖其他路径/目录组合的目录。

是否确实必须通过app.use()静态提供每个index.html使用的资源?

不,如果它与index.html处于同一位置并由同一路径引用,并且您使用的express.static()是覆盖整个目录的,则不是这样。

您希望node.js服务器发送的每个资源都必须由服务器中的某些路由专门覆盖。某些路由可能包含许多文件或文件的整个目录,但是您要处理的每个请求都必须包含一条路由。



 类似资料:
  • 问题内容: 我想知道用Java加载资源的最佳方法: this.getClass().getResource() (or getResourceAsStream()), Thread.currentThread().getContextClassLoader().getResource(name), System.class.getResource(name)。 问题答案: 根据你的需要制定解决方案

  • 问题内容: 我正在尝试使用Angular和Phonegap加载位于远程服务器上但遇到问题的视频。在我的JSON中,URL作为纯HTTP URL输入。 我的影片范本 我所有其他数据都已加载,但是当我查看控制台时,出现以下错误: 我尝试添加配置设置,但没有解决我的问题。 问题答案: 这是唯一对我有用的解决方案: 然后在iframe中:

  • 问题内容: 我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们。 因此,如果c == 12,则info应该是名称为“ n_12”的字符串数组。有没有办法做到这一点,并且避免对数百种情况进行switch语句? 谢谢 问题答案: 您可以像这样获取资源ID 然后只需使用该ID 在这里看看有关的另一个示例。

  • 问题内容: 我需要以编程方式向JSF页面添加JS和CSS资源。目前尚不清楚如何实现这一目标。有人可以提供提示或启动示例吗? 问题答案: 这取决于您到底想在哪里声明资源。 通常 ,以编程方式声明它们的唯一原因是您拥有一个自定义或生成HTML代码,而这些代码又需要这些JS和/或CSS资源。然后由或声明它们。 但是,如果您 确实 需要在其他地方声明它们,例如 在 渲染响应 之前 调用的backing b

  • 我不知道为什么会这样,但真的很烦人。我希望该文件是根据express docs下载的。我有下一个代码: 文件夹结构: 没有发生任何事情,错误未显示。有什么想法吗?