可以说我正在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.js
与config.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下载的。我有下一个代码: 文件夹结构: 没有发生任何事情,错误未显示。有什么想法吗?