繁体   English   中英

Express文件服务和静态文件

[英]Express File Serving and Static Files

大家好,我不知道该搜索什么内容,但这是我的问题。 对于我们的项目,我们使用Express共享用于我们应用程序的服务器。 我们不允许共享网址,因此出于问题的考虑,我将不得不更改网址。 我们的服务器根目录是http://www.server.com ,但我们的项目URL是http://www.server.com/team01/ 我如何每次都能从/team01/public/css/whatever.css提供服务,但要保留文件以便在localhost上进行测试。 我不想每次从本地主机迁移到服务器时都必须更改链接。 同样,对于我们所有的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"));

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

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


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM