Express服务器公共样式表无法加载应用问题求助
问题分析与解决
你的样式表无法加载有两个关键问题,其中第一个是核心原因:
1. Link标签属性错误
你在index.ejs里的样式表引用用了src属性,但浏览器加载样式表需要用**href**属性。src是用于脚本、图片等资源的属性,浏览器不会识别link标签的src,因此根本不会发起样式表的请求,这就是网络面板看不到请求的原因。
修改index.ejs中的link标签:
<link rel="stylesheet" href="/styles.css" type="text/css">
2. app.listen的位置不符合规范
虽然你当前直接访问样式表能正常显示,但app.listen(3000)应该放在所有路由和中间件注册的最后。因为Express是按代码顺序注册中间件和路由的,把listen放在前面属于不规范写法,可能引发时序问题。
同时你的app.js里res.render的参数还存在语法错误(缺少闭合大括号),一并修正后的代码如下:
const express = require('express'); const app = express(); app.set('view engine', 'ejs'); app.use(express.static(__dirname + '/public')); app.get('/', (req, res) => { res.render('index', {title: 'Home'}); }); app.listen(3000);
做完这两处修改后,重启服务器,页面就能正常加载样式表了。
内容的提问来源于stack exchange,提问作者sam31
相关产品推荐
相关产品推荐

