【问题标题】:Serving static files in node.js - 500 internal server error在 node.js 中提供静态文件 - 500 内部服务器错误
【发布时间】:2023-03-14 15:56:01
【问题描述】:

我遇到了一个奇怪的问题,即我们的登台服务器在尝试检索 css 或 js 资产时抛出 500 错误。我们使用 broccoli 将资产编译到分发目录,所以我有 ~/dist/assets/app.css(以及 app.js 和 img 目录)。图像似乎很好!只有 app.js 和 app.css 文件会抛出 500 错误。我已经确保这些文件肯定存在于它们的适当位置。 我们正在使用 express.js 和 serve-static 模块。代码很简单:

serveStatic = require('serve-static');
app.use(serveStatic('dist/assets'));

然后点击“http://url.com/assets/app.css”会抛出 500。 点击“http://url.com/app.css”可以工作。这似乎没问题(因为我正在提供 dist/assets 所以请求应该与 /assets 相关),但这一切都在几天前使用请求的 /assets 前缀。 任何地方的日志中都没有产生错误输出。被这个难住了。 我只是想确保我没有做任何愚蠢的事情。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    你试过这个吗:

    serveStatic = require('serve-static');
    app.use(serveStatic('dist'));
    

    serveStatic(root, options)

    创建一个新的中间件函数来从给定的文件中提供文件 根目录。

    根据该声明,您应该期望使用“serveStatic('dist/assets')”将从http://url.com/app.css 提供 app.css

    【讨论】:

    • 是的,当然可以,但这是使用 'dist/assets' 设置的,并且不知何故也可以正常工作。我不知道,会想办法的。
    • serve-static 使用“root”输入作为静态资源的根文件夹。所以,如果你想从“/assets/app.css”中拉取文件,你需要使用“dist”的根目录。
    • 有道理,谢谢。我试图弄清楚这是如何工作的,并想确保我没有做任何愚蠢的事情。之前肯定用过'dist/assets',请求前缀是'/assets/app.css'。废话。
    • 废话,确实 :) 也许您之前有以下文件结构:/dist/assets/assets/app.css ?
    • 不这么认为。 dist 文件夹是从 broccoli 脚本“broccoli build dist”构建的,并且只是将 assets 文件夹放在那里。根本没有改变这一点。如果/当我弄清楚时,我会尽量记住让你知道发生了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2016-02-19
    • 2018-03-26
    • 2020-02-21
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多