快速文件服务和静态文件

Express File Serving and Static Files

大家好,我不知道要搜索什么这个问题,但这是我的问题。对于我们的项目,我们正在使用 express 为我们的应用程序共享一个服务器。我们不允许共享 urls,因此为了这个问题,我将不得不更改 url。我们的服务器根目录是 http://www.server.com, but our project url is http://www.server.com/team01/。我如何每次都从 /team01/public/css/whatever.css 提供服务,但保留我们的文件以在本地主机上进行测试。我不想每次从本地主机迁移到服务器时都必须更改链接。同样对于我们所有的 href 来说,它会变成 server.com,这会弄乱从本地主机迁移到服务器的所有内容。任何帮助表示赞赏。我用过 app.use('/public',express.static(path.join(__dirname,'/public')));在快递中。

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

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

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

那么,您的快递服务器可以使用这个:

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

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

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


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