js代码:
javascript
// app.js
const express = require('express');
const path = require('path');
const app = express();
// 设置静态文件目录,这里假设你的视频文件在public/videos/目录下
app.use(express.static(path.join(__dirname, '')));
// 设置主页路由,指向一个包含HTML5 video元素的页面
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'test.html'));
});
// 启动服务器
const PORT = process.env.PORT || 3001;
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
html代码:
html
<!-- public/views/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Video Player</title>
</head>
<body>
<h1>hello</h1>
<video width="640" height="360" controls>
<!-- 视频路径相对于static目录 -->
<source src="./videos/111.mp4" type="video/mp4">
</video>
<img src="./videos/qq1.png" alt="">
</body>
</html>
在vscode中直接打开test.html可以正常加载视频。但是使用node 启动js监听端口然后调用test.html就不行,不能加载html文件。
文件目录结构:
--videos
--111.mp4
---qq1.png
--test.js
--test.html
问题,发现是localhost访问时地址不对。浏览器会直接访问localhost:3001/111.mp4
所以这里需要设置路径映射
其实这段代码:
javascript
app.use(express.static(path.join(__dirname, '')));
就是用来设置路径映射的,只是最开始没有设置正确。
这里将代码改为:
javascript
app.use(express.static(path.join(__dirname, 'videos')));
将路径映射到videos文件夹,然后就可以读取到videos文件夹下的文件。
修改后代码:
js:
javascript
// app.js
const express = require('express');
const path = require('path');
const app = express();
// 设置静态文件目录,这里假设你的视频文件在public/videos/目录下
app.use(express.static(path.join(__dirname, 'videos')));
// 设置主页路由,指向一个包含HTML5 video元素的页面
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'test.html'));
});
// 启动服务器
const PORT = process.env.PORT || 3001;
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
html:
html
<!-- public/views/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Video Player</title>
</head>
<body>
<h1>hello</h1>
<video width="640" height="360" controls>
<!-- 视频路径相对于static目录 -->
<source src="111.mp4" type="video/mp4">
</video>
<img src="./qq1.png" alt="">
</body>
</html>