一旦发送到 OVH 托管,NodeJs 就无法工作
我正在寻求帮助解决我的 OVH 服务器上出现的一些问题(网络云托管,执行引擎设置为 nodejs-14)
代码如下
文件目录如下:
index.js
folder views
=>mainpage.html
folder public
=>folder css
=>=>main.css
=>folder js
=>=>hackerTitle.js
index.js
const express = require('express');
const app = express();
const path = require('path');
app.use(express.static("public"))
app.use(express.static("views"))
const port = 3000;
app.get('/', (req, res) => {
fs.readFile('views/mainpage.html', function(err, data) {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/html');
res.write(data);
return res.end();
});
})
app.listen(port);
<html>
<head>
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<h1 data-value="Bienvenue sur mon site"> Bienvenue sur mon site </h1>
<p>Bienvenue sur mon site web ?</p>
</body>
<script src="js/hackerTitle.js"></script>
</html>
body{
background-color:black
}
h1 {
color:white;
font-size:5em;
font-family: "Space Mono", monospace;
}
hackertitle.js
document.querySelector("h1").onmouseover = event => {
const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let iterations = 0;
const HKinterval = setInterval(() => {
event.target.innerText = event.target.innerText.split("")
.map((letter,index) => {
if (index < iterations) {
return event.target.dataset.value[index];
}
return letters[Math.floor(Math.random()*26)];})
.join("");
if(iterations >= event.target.dataset.value.lenght) clearInterval(HKinterval);
iterations+=1/2;
},25);
}
我遇到的问题是,如果我信任我的浏览器控制台,我的 css 上的 404(无法获取 /css/main.css)或 MIME 类型不正确(类型 MIME(« text/html »)不正确(X-Content -类型选项:nosniff)。)
JS 也一样
所以...我迷路了。尽管在我的计算机上工作,我是否在我的代码上摸索了一些东西,或者这是 OVH 的东西我需要检查/配置/修补它才能工作?
我在我的本地试过了,甚至为它做了一个 codepen,它可以在 code pen 上工作。 我把它转移到我电脑上的节点 Js + express 上,仍然可以正常工作。
对于 OVH,我尝试: - 将 css 移动到不同的文件夹。 - 尝试一个更小的 index.js 脚本来测试 express JS 在没有 HTML 文档的情况下编写(这表明 express 似乎一切都很好) -尝试重命名 CSS 文件并移动它 -清除缓存 -重启ovh网站
长话短说:
Node JS / Express 代码在 PC 上工作,用于带 css 和 JS 的 HTML 页面。使用 FTP 发送后不适用于 OVH。尝试过的东西。在线寻找解决方案。没找到。
回答如下: