【问题标题】:Express File Serving and Static Files快速文件服务和静态文件
【发布时间】:2018-05-14 22:53:06
【问题描述】:

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

【问题讨论】:

    标签: node.js express static-files


    【解决方案1】:

    在您的 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 文件复制到该主机。


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

    【讨论】:

    • 我仍然遇到同样的问题。我已经记录了服务器上目录的路径,这是公共 /home/fa17/public_html/team07/public 文件所在的位置,我应该如何处理?当我与 链接时,它会直接进入根目录而不是 /fa17/css。当我在开始时取出正斜杠时,它可以工作,但是对于不在根目录中的路径根据路径所在的位置不断变化,这将成为一场噩梦。
    • @Vik - 如果 URL /css/whatever.css 应该加载位于/home/fa17/public_html/team07/public/css/whatever.css 的文件,那么您应该能够只在网页中使用&lt;link href="/css/whatever.css"&gt;app.use(express.static("/home/fa17/public_html/team07/public"));
    • 我刚刚完成了它,但它仍然无法正常工作......即使对于我所有的锚标签,它也在做同样的 Login 引用基础服务器到 server.com/login 而不是 server.com/fa17/login ...我可以在 Nginx 中做些什么来解决这个问题,或者这是一个失败的原因?我已经设法通过附加 /fa17/login 使其在服务器上工作,但是当我在本地工作时很难保持更改。对于css,如果我附加/fa17g07/css/login.css,它也可以工作,所以我不确定发生了什么或如何诊断这个问题。顺便说一句,感谢您迄今为止的帮助
    • @Vik - 我没有意识到这对于您的所有请求都是系统范围的问题,而不仅仅是静态资源请求。我想我不太了解您遇到的整体问题。
    • @Vik - 为什么需要在 URL 前加上 http://server.com/fa17 前缀?是否有 NGINX 代理正在寻找 /fa17 路径并重定向到您的特定私有服务器?
    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 2013-04-26
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2012-06-03
    • 2010-11-13
    相关资源
    最近更新 更多