当前位置: 首页 > 面试题库 >

CSS和JS未在Node.js服务器上加载

萧阳波
2023-03-14
问题内容

我刚刚开始学习Node.js,并编写了最简单的服务器,如下所示:

// workspace



const p = document.querySelector('p');

p.textContent = 'aleluja';


html {

    font-size: 10px;

}



body {

    font-size: 2rem;

}


<!DOCTYPE html>

<html lang="pl">

<head>



    <meta charset="utf-8">



    <title>Go go go</title>



    <link href="sheet1.css" rel="stylesheet">



    <script src="main.js" async></script>



</head>

<body>



    <p>something</p>



</body>

</html>

和服务器:

const http = require('http');

const fs = require('fs');



const hostname = '127.0.0.1';

const port = 3000;



fs.readFile('index.html', (err, html) => {

   if (err) {

     throw err;

   }

   const server = http.createServer((req, res) => {

     res.statusCode = 200;

     res.setHeader('Content-type', 'text/html');

     res.write(html);

     res.end();

   });

   server.listen(port, hostname, () => {

     console.log('started');

   });

})

我的问题是,第一次运行此代码时,它运行良好-
CSS和js加载没有问题。但是后来我在同一台服务器上同时使用PHP和Node.js(使用nginx)进行了实验。我失败了,因为我不需要太多(这只是为了好玩),所以我放弃并更改了所有更改以实现此目标设置(例如nginx-
conf中的端口)。然后,在尝试再次运行此代码后,它不会加载sheet1.css和main.js。为什么会这样呢?我是否将所有设置恢复为默认状态?

感谢您的回答。


问题答案:

这是您的服务器逻辑:

   const server = http.createServer((req, res) => {
     res.statusCode = 200;
     res.setHeader('Content-type', 'text/html');
     res.write(html);
     res.end();
   });

浏览器要求/,服务器为它提供html变量的值。

浏览器要求/sheet1.css,服务器为它提供html变量的值。

浏览器要求/main.js,服务器为它提供html变量的值。

您需要注意req对象中的URL,并给浏览器提供它所要的内容,而不是盲目发送html任何要求的内容。

请注意,您还需要设置正确的Content-Type响应头。

(您可能还应该避免重新发明轮子,并使用为此目的而设计的Express.js及其静态模块)。

我的问题是,第一次运行此代码时,它运行良好-CSS和js加载没有问题。

不可能发生。可能是您index.htmlfile:URL 加载并完全绕过了服务器。



 类似资料:
  • 问题内容: 我正在尝试使用MEAN堆栈创建一个简单的单页应用程序。到目前为止,我在本地主机上工作,并且一切正常。 可悲的是,将代码上传到服务器后,每当我的应用程序尝试从部分文件夹(HTML模板)下载任何内容时,我都会收到状态码500(内部服务器错误)。 这不是CORS问题(相同的域),但只是要确保我也安装了CORS插件。 路线示例: 我也有路径设置: 我搜索了许多页面,但找不到解决方案。感谢您的任

  • 在CodeIgniter中添加JavaScript和CSS(层叠样式表)文件非常简单。 你必须在根目录中创建JS和CSS文件夹,并复制JS文件夹中的所有.js文件和CSS文件夹中的.css文件,如图所示。 例如,假设您已经创建了一个JavaScript文件sample.js和一个CSS文件style.css 。 现在,要将这些文件添加到视图中,请在控制器中加载URL帮助程序,如下所示。 $this

  • 问题内容: 我遵守规则 它将URL 重定向到。页面成功重定向,但问题未加载, CSS,js文件位于和下 一种解决方案是使用 绝对路径 (例如/ CSS或/ js而不是CSS /,/ js,但这似乎不是一个可靠的解决方案,因为我们必须在所有文件上进行更改, 是否有其他基于规则的解决方案,这些解决方案独立于编辑所有PHP文件并让我们使用“相对路径”? 问题答案: 不要偷懒,将资源中的相对URI更改为根

  • 问题内容: 这是一个简单的node.js代码。 我将其上传到cpanel托管服务器上并安装了node.js并运行它。如果服务器是普通服务器,我可以通过访问’http:// {serverip}:8080’检查脚本结果。但是在cpanel上托管域和子域,并且每个域都由每个站点匹配。甚至http:// {serverip}也不是有效的网址。如何访问我的node.js结果?请教我。谢谢。bingbing

  • 当我运行服务器时。在同一台hazelcast客户端中,我可以看到我能够在同一台物理计算机上使用两个成员组成集群。但是,当我尝试使用以下代码使用相同的hazelcast生成一个新实例(在同一台物理机器上)时。xml配置文件(作为示例客户机正在使用的文件),我的服务器实例似乎没有加入samle客户机节点。我正在启动的服务器进程无法启动(我可以在visualvm中看到它)。我已经加入了- 服务器示例: