快速文件服务和静态文件

时间:2017-11-30 21:45:41

标签: node.js express static-files

嘿大家我不知道什么以及要搜索这个问题,但这是我的问题。对于我们的项目,我们正在使用express为我们的应用程序共享服务器。我们不允许分享网址,因此我将不得不为了问题而更改网址。我们的服务器根目录是http://www.server.com,但我们的项目网址是http://www.server.com/team01/。我如何每次都从/team01/public/css/whatever.css提供服务,但保留我们的文件以便在localhost上进行测试。我不想每次从localhost迁移到服务器时都要更改链接。同样对于我们所有的href,它都会发送到server.com,这会搞乱从localhost迁移到服务器的所有内容。任何帮助表示赞赏。我用过  app.use('/ public',express.static(path.join(__ dirname,'/ public')));在快递。

1 个答案:

答案 0 :(得分:0)

在HTML文件中,您可以参考:

<link href="/css/whatever.css">

这将告诉浏览器使用从中加载网页的任何主机,但总是请求该主机上的/css/whatever.css路径。

然后,您的快速服务器可以使用:

 app.use(express.static("/team01/public"));

这将告诉快递服务器,当它收到/css/whatever.css的请求时,应查看/team01/public/css/whatever.css以查看该文件是否存在,如果存在,则从那里静态地提供服务。

使用此方案,只要您在localhost服务器上的/team01/public中拥有正确文件的副本,就可以在localhost上运行。然后,当您切换到真实的http://www.server.com时,您只需确保将/team01/public文件复制到该主机。

仅供参考,您还可以在网站上的每个网页的头部添加<base href="http://server.com/fa17">,然后将其与网页中的所有相关网址一起使用。如果您使用模板引擎来提供HTML文件,那么您可以通过启动代码(根据服务器的运行位置)控制该标记中的路径。