node.js用于提供对node.js服务器上的资源的访问权限的网页

时间:2014-11-07 08:03:48

标签: 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中我试图设置如下表达式:

self.app.use(express.static(__dirname));
self.app.use('/lib',  express.static(__dirname + '/lib'));
self.app.use('/themes',  express.static(__dirname + '/themes'));

1 个答案:

答案 0 :(得分:0)

当然,当您使用自己的自定义构建的nodejs服务器时,您的相对路径将起作用,该服务器可以提供文件,.html .css .js等。

我假设你有一些public文件夹来自你的资产。如果您不使用任何特殊的路由魔法,并且只是对公共文件夹的结构进行处理,则HTML中的相对路径将起作用。

<link rel="stylesheet" href="styles/main.css">

上面的代码可以加载类似:public/styles/main.css

的内容