gpt4 book ai didi

javascript - 为什么我的 html 文件没有加载express.static?

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:28 25 4
gpt4 key购买 nike

文件结构:

- simulated-selves
- client
- directives
- Statement
- statement.directive.html
- lib
- server
- app.js
- index.html

我有:

app.use(express.static('client'));
app.use(express.static('lib'));

我正在加载的资源 index.html正在正确加载。

<link rel='stylesheet' href='assets/app.css' />
<script src='angular.js'></script>
<script src='app.js'></script>
<script src='controllers/main.controller.js'></script>
<script src='directives/Statement/statement.directive.js'></script>
<script src='providers/statement.factory.js'></script>

但我收到此错误:

enter image description here

这是为什么呢? statement.directive.html嵌套在 client 内文件夹,由 express.static 处理。我知道它不是直接嵌套在 client 下面,但我的其他一堆 Assets 也没有正确加载。我看到的唯一区别是使用 <script>/<link/>与 HTTP 请求相比。如果这就是问题所在,我不确定除了为每个 Assets 设置一个端点之外如何解决它,这似乎非常过分。

附带问题:服务 lib 是否不好?文件夹通过 express.static ?我不这么认为,因为它们都是公开的。我不确定如何才能在不为每个文件编写显式 GET 端点的情况下提供该文件夹中的文件。

编辑:我的png文件也没有被提供。他们在client > assets > images下.

最佳答案

考虑:app.use(express.static('client'));

第一部分是调用 app.use有一个论点。这基本上意味着传递给它的回调参数将针对应用程序的每个请求执行。

第二部分是它传入 express.static('client')。这基本上是说:

When we get a request to /foo/bar.ext, we're going to check if /client/foo/bar.ext exists. If it does, we'll serve it. If not, we won't.

我碰巧一直在向

提出请求
/client/directives/Statement/statement.directive.html

所以它会看看是否

/client/client/directives/Statement/statement.directive.html

存在,如果存在,它就会为它服务。但它显然不存在。我通过向

提出请求解决了这个问题
/directives/Statement/statement.directive.html
<小时/>

至于使用 express.static 提供库:

And no, it's not bad to serve libs with a static server middleware

-Chev

关于javascript - 为什么我的 html 文件没有加载express.static?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com