我有一个 html 页面,它引用了许多本地脚本文件,而这些脚本文件又引用了其他本地资源。我所说的本地是指 html 文件的本地。
是否可以使用 Node.js 服务器方法来提供这样的网页?到目前为止我已经能够解决,node.js 服务器可以返回 html 内容,但是当它显示在用户的浏览器中时,我无法轻松地看到它如何能够引用各种脚本,因为 html 不是从服务器上的普通文件夹提供的,无法对其周围的文件夹和资源进行相对访问。
有没有办法做到这一点,或者考虑这种方法是否很疯狂?最好将 html 和相关资源粘贴到标准服务器上并完成它?
编辑:我应该解释一下,从node.js提供html的动机是我已经从node.js服务器提供图像,这些图像是使用html将使用的相同脚本生成的。因此,用户有两种方法来获取相同的内容:作为 png 文件或作为网页,并且在这两种方法中,工作都是由相同的核心脚本完成的......一种具有 html 前端,另一种具有 node.js 前端。因此,如果能够将所有代码保留在一个位置,而不是必须复制内容并将其放在两个位置,并且当我在主要位置更新代码时必须记住更新辅助位置中的代码,那就太好了。
编辑添加文件夹结构以帮助调试(请参阅下面的评论):
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'));
最佳答案
当然,当使用您自己的自定义构建的 NodeJS 服务器时,您的相对路径将起作用,该服务器可以提供文件、.html .css .js 等。
我假设您有某种 public
文件夹,您可以在其中提供 Assets 。如果您不使用任何特殊的路由魔法,而只是引用公用文件夹的结构,则 HTML 中的相对路径将起作用。
<link rel="stylesheet" href="styles/main.css">
上面的代码可以加载类似的内容:public/styles/main.css
关于javascript - Node.js 用于提供网页并可以访问 Node.js 服务器上的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26796717/