javascript - Node.js 用于提供网页并可以访问 Node.js 服务器上的资源

标签 javascript html node.js server

我有一个 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/

相关文章:

javascript - 使用 firebase 的网络谷歌身份验证

javascript - 使用 JQuery 和 CSS 的 3D 轮播 - 无法正确渲染

javascript - 如何设置我绘制的 fabricjs 文本对象的一部分?

javascript - 将变量从主 gulpfile.js 传递到跨多个文件的任务

javascript - 如何使用 ActiveDirectory 2 返回 AD 组的成员?

javascript - 我如何使用 Greasemonkey 单击此按钮?

javascript - 无法使用 Node.js 通过 HTML 访问 JavaScript 静态文件

html - 使用媒体查询将 CSS 应用于除 IE 之外的所有浏览器

javascript - 在 javascript 或 c# 中从 Html 源查找重定向 URL

linux - 无法理解为什么 Node 进程在树莓派 2 上崩溃