gpt4 book ai didi

javascript - 某些 expressjs 静态文件正在提供,而另一些则没有

转载 作者:搜寻专家 更新时间:2023-10-30 21:56:30 25 4
gpt4 key购买 nike

我有一个奇怪的情况,特别麻烦的是,我已经这样做了很多次,然后它必须是我所缺少的简单东西。

请帮帮我,我觉得我正在失去理智......

问题/症状

  1. 我可以从 lib 文件夹加载任何 js 文件
  2. 我可以在网页位置 //art/foo/bar.png 下的文件夹 root/public/art 中加载任何 png 文件
  3. 无论我做什么,都无法从 CSS 或 js 加载任何内容,这一切都会给我带来 404 错误,这让我完全抓狂。
  4. 注释掉第 13 行的相同行为
  5. 同14-16行的各种形式
  6. 使用和不使用路由器都一样

文件夹结构

    • 服务器.ts
    • 公开
    • 艺术
      • 子文件夹中的艺术
    • CSS
      • Canvas .css
    • js
      • 文件夹中的js文件而不是

代码

import * as express from "express";
import * as path from "path";
//const express = require("express")
//const path = require("path")

let app = express()
let port = 3000
let router = express.Router();

router.use('/lib/framework', express.static( path.join(__dirname, 'node_modules','framework')));
router.use('/lib/redactedLib2', express.static(path.join(__dirname, 'node_modules', 'redactedLib2')));
router.use('/lib/redactedLib3', express.static(path.join(__dirname, 'node_modules', 'redactedLib3')));
router.get('/', (req, res) => res.sendFile(path.join(__dirname, 'index.html')))
//app.use('/art/*', express.static(path.join(__dirname, 'public', 'art')));
//app.use('/css/*', express.static(path.join(__dirname, 'public', 'css')));
//app.use('/js/*', express.static(path.join(__dirname, 'public', 'js')));

router.use('/', express.static('public'))

app.use('/', router)

app.listen(port, () => console.log(`Go to http://localhost:${port} to view.`))

解决方案(编辑)

万一以后有人发现这个我一直在修复它我只需要做一个空缓存并重新加载......如果你在 chrome 打开开发工具 F12 然后点击并按住刷新并选择它。

最佳答案

根据您在此处展示的内容,我发现了两个问题。首先是您的目录结构。这对你的结构实际是准确的吗?因为在您的应用程序中,您告诉 Node 将/art/* 转换为/public/art/目录,但该目录实际上位于/art。

其次,它是虚拟路径前缀的格式。删除/*;无需声明通配符值。它只会弄乱路径。尾随/也是不必要的,尽管它不应该引起问题。无论哪种方式,将您的路线重组为:

router.use('/lib/framework', express.static( path.join(__dirname, 'node_modules','framework')));
router.use('/lib/redactedLib2', express.static(path.join(__dirname, 'node_modules', 'redactedLib2')));
router.use('/lib/redactedLib3', express.static(path.join(__dirname, 'node_modules', 'redactedLib3')));
app.use('/art', express.static(path.join(__dirname, 'public', 'art')));
app.use('/css', express.static(path.join(__dirname, 'public', 'css')));
app.use('/js', express.static(path.join(__dirname, 'public', 'js')));
router.get('/', (req, res) => res.sendFile(path.join(__dirname, 'index.html')));

并且修复应用程序中的路径连接,或修复物理文件结构,将解决加载实际不存在的资源的问题。

关于javascript - 某些 expressjs 静态文件正在提供,而另一些则没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54661707/

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