【问题标题】:Static files cannot be loaded nodejs静态文件无法加载nodejs
【发布时间】:2019-03-12 20:18:38
【问题描述】:

我已经声明了静态文件(例如 CSS 和 javascript 文件)的静态路径。如果有一个 URL 路径,则可以成功检索静态文件,但是当我添加子路径时,它们无法访问。

文件夹位置

/static/css
/static/js

在 HTML 中

<link rel="stylesheet/less" href="css/progress.less" type="text/css">

在 server.js 中

app.use(express.static(__dirname + ""));
app.use(express.static(__dirname + "/static"));
app.use('/static', express.static('/static/'));
app.use(express.static(__dirname));

在单个路径中,例如可以访问它们

localhost:4000/css/style.css

但在这样的网址中

localhost:4000/services/construction/css/style.css

这会引发错误。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    首先,使用一次express.static。不要通过为所有静态文件提供多个 URL 来混淆问题。

    您说localhost:4000/css/style.css 有效,因此请继续使用使该 URL 有效的调用:

    app.use(express.static(__dirname + "/static"));
    

    然后,将您的 HTML 更改为始终指向 那个 URL。

    <link rel="stylesheet/less" href="css/progress.less" type="text/css">
    

    这是一个路径相对 URL。它将删除路径中最后一个/ 的所有内容,并保留之前的所有内容,包括/

    因此,根据 HTML 文档的位置,您将为样式表引用不同的 URL。

    改用绝对路径。 URL 以/ 开头:

    href="/css/progress.less"
    

    【讨论】:

      【解决方案2】:

      你试过用app.use(express.static('static'));

      【讨论】:

        猜你喜欢
        • 2015-03-10
        • 2014-07-12
        • 2018-03-19
        • 2017-05-18
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 2021-05-05
        相关资源
        最近更新 更多