最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

有些表达静态文件正在服务而有些则没有

IT培训 admin 4浏览 0评论

有些表达静态文件正在服务而有些则没有

我有一个奇怪的情况,特别麻烦的是,我已经多次这样做了之前我必须要做的事情很简单。

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

Problem/Symptoms

  1. 我可以从lib文件夹中加载任何js文件
  2. 我可以在网站root/public/art下的//art/foo/bar.png文件夹中加载任何png文件
  3. 不能从CSS加载任何东西无论我做什么都给我404错误这让我完全疯了。
  4. 注意到与第13行相同的行为
  5. 与各种形式的线14-16相同
  6. 使用和不使用路由器相同

Folder Structure

  • 根 server.ts 上市 艺术 子文件夹中的艺术 CSS canvas.css JS js文件夹在文件夹中而不是

Code

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.`))

Solution (Edit)

任何人都发现这个以后我一直在修理它我需要做一个空的缓存并重新加载...如果你在chrome open开发工具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')));

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

有些表达静态文件正在服务而有些则没有

我有一个奇怪的情况,特别麻烦的是,我已经多次这样做了之前我必须要做的事情很简单。

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

Problem/Symptoms

  1. 我可以从lib文件夹中加载任何js文件
  2. 我可以在网站root/public/art下的//art/foo/bar.png文件夹中加载任何png文件
  3. 不能从CSS加载任何东西无论我做什么都给我404错误这让我完全疯了。
  4. 注意到与第13行相同的行为
  5. 与各种形式的线14-16相同
  6. 使用和不使用路由器相同

Folder Structure

  • 根 server.ts 上市 艺术 子文件夹中的艺术 CSS canvas.css JS js文件夹在文件夹中而不是

Code

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.`))

Solution (Edit)

任何人都发现这个以后我一直在修理它我需要做一个空的缓存并重新加载...如果你在chrome open开发工具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')));

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

发布评论

评论列表 (0)

  1. 暂无评论