【发布时间】:2015-01-03 23:27:45
【问题描述】:
我有一个 html 页面,它引用了许多本地脚本文件,而这些脚本文件又引用了其他本地资源。本地是指 html 文件的本地。
是否可以使用 node.js 服务器方法来提供这样的网页?到目前为止,我已经能够解决,node.js 服务器可以返回 html 内容,但是当它显示在用户的浏览器中时,我无法轻易看到它如何能够引用各种脚本,因为 html 不是从服务器上的普通文件夹中提供的,而是对其周围的文件夹和资源的相对访问。
有没有办法做到这一点,或者考虑这种方法是不是很疯狂?最好把 html 和相关资源贴在标准服务器上,然后完成?
编辑:我应该解释一下,从 node.js 提供 html 的动机是我已经在从 node.js 服务器提供图像,这些图像是使用 html 将使用的相同脚本生成的。因此,用户可以通过两种方式获得相同的内容:作为 png 文件或作为网页,并且在这两种方法中,工作都是由相同的核心脚本完成的……一种具有 html 前端,另一种具有node.js 前端。因此,能够将所有代码保存在一个位置会很好,而不必复制东西并将其放在两个地方,并且当我在主要位置更新代码时必须记住在辅助位置更新代码位置。
编辑以添加文件夹结构以帮助调试(参见下面的 cmets):
mypage.html
myLibFile.js
/lib/*.js (various js resources including jquery)
/lib/modules/*.js (various js resources)
/lib/fonts/* (various resources)
/themes/*.js (various js resources)
在 mypage.html 我有:
<script type="text/javascript" src="/lib/jquery.1.9.1.min.js"></script>
<script type="text/javascript" src="/lib/libFile.js"></script>
<script type="text/javascript" src="/lib/modules/modFile.js"></script>
<link href="/lib/fonts/awesomefont.css" rel="stylesheet">
<script type="text/javascript" src="/myLibFile.js"></script>
<script type="text/javascript">
$(function () { // On DOM ready...
// ... code ...
});
</script>
在我的 node.js 中,我尝试将 express 设置如下:
self.app.use(express.static(__dirname));
self.app.use('/lib', express.static(__dirname + '/lib'));
self.app.use('/themes', express.static(__dirname + '/themes'));
【问题讨论】:
标签: javascript html node.js server