gpt4 book ai didi

html - 我的 node.js 应用没有检测到 .css 文件

转载 作者:搜寻专家 更新时间:2023-10-31 23:48:07 25 4
gpt4 key购买 nike

我刚开始使用 Node.js,但我的第一个应用程序遇到了问题:我有我的第一个应用程序设置“app.js”,带有一个 html 文件“new.html”和一个 .css 文件“formato.css”。问题是,当我在网络浏览器上打开 new.html 时,它确实尊重 .css 文件上写的内容,但是当我运行“node app.js”时,出现的屏幕不尊重 .css 文件上的内容。 CSS 文件。我该如何解决这个问题?

应用程序.js:

var http = require('http');
var url = require('url');
var fs = require('fs');
var qs = require('querystring');

var nuevoPostHTML= fs.readFileSync('vistas/post/new.html');

function nuevoPost(request, response){
response.writeHead(200, {'Content-type': 'text/html; charset - utf8'});
response.end(nuevoPostHTML);
}

function agregarNuevoPost(request, response){
parseBody(request, function(body){
var post = {
title: body.title,
content: body.content
}
console.log("Title: " + post.title);
console.log("Content:" + post.content);
})
response.end();
}


//Utils
function notFound(request, response){
response.writeHead(404);
response.end('404: File not Found');
}

function parseBody(request, callback){
var body = '';
request.on('data', function(chunk){ body += chunk;})
request.on('end', function(){callback(qs.parse(body));})
}
//Rutas
var regexNuevoPost = new RegExp('^/posts/new/?$');
var regexPost = new RegExp('^/posts/?$');


//Comienza servidor
var server = http.createServer(function(request, response){
var nomPath = url.parse(request.url).pathname;

if (regexNuevoPost.test(nomPath)){
nuevoPost(request, response);
}else if (regexPost.test(nomPath)){
agregarNuevoPost(request,response);

}else{
notFound(request,response);
}
});

server.listen(8000);
console.log('Listening on http://127.0.0.1:8000');

新.html:

<!DOCTYPE html>
<html>
<head>
<title>
Nuevo Post
</title>
<link rel="stylesheet" type="text/css" href="formato.css" />
</head>
<body>
<h1>
Nuevo Post
</h1>
<form method="post" action="/posts" id="new_post" class="new_post">
<div class="field">
<label for="post_title">Titulo</label><br />
<input type="text" name="title" id="post_title" size="30" />
</div>
<div class="field">
<label for="post_content">Contenido</label><br />
<textarea name="content" cols="40" rows="20" id="post_content">
</textarea>
</div>
<div class="actions">
<input type="submit" value="Crear" id="post_submit" />
</div>
</form>
<p>
<br />
<a href="/posts">Back</a>
</p>

formato.css:

body {
background-color: lightblue;
}

h1 {
color: navy;
margin-left: 20px;
}

最佳答案

您必须使用静态服务器中间件来为您的静态 Assets 提供服务。如果你打算使用 expressjs 框架,它有一个内置的 serve-static中间件。

var express = require('express');
var app = express();

// serve static assets
app.use(express.static(__dirname + '/assets'));

如果你不会使用 express,你可以简单地使用它的 middleware在你的项目中。

$ npm install serve-static

var serveStatic = require('serve-static');
var serve = serveStatic('/assets', {});

var server = http.createServer(function(req, res){
var done = finalhandler(req, res);
serve(req, res, done);
});

关于html - 我的 node.js 应用没有检测到 .css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28802345/

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