html - 为什么我不能将我的 css 链接到我的 ejs 文件?

标签 html css node.js express ejs

我在将我的 css 文件连接到我的 ejs 文件时遇到问题。我想我有标准的 node.js/express 设置。我正在尝试将位于我的 public/css 目录中的 ma​​in.css 文件连接到位于我的 View 中的 index.ejs 文件。 html 和路由工作正常。这是我的 app.js 代码。

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var users = require('./routes/users');
var contact = require('./routes/contact');
var register_form = require('./routes/register');


var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

在我的 index.ejs 文件中,我在 head 标签之间插入了链接。我已经三重检查以确保所有文件名都是正确的。

 <head>
    <title><%= title %></title>
    <link type="text/css" rel='stylesheet' href='../public/css/main.css' />
  </head>

最佳答案

在 app.js 中,您已经定义了静态文件的位置(正如您应该的那样):app.use(express.static(path.join(__dirname, 'public'))); .这允许您使用从 public 开始的绝对路径来引用静态文件,例如 css。目录。

因此将链接行更改为 <link type="text/css" rel='stylesheet' href='/css/main.css' />它应该工作。

最好使用这种“绝对”路径,因为它允许您在不破坏 css 链接的情况下移动模板页面(例如移动 views/index.ejs -> views/pages/index.ejs

关于html - 为什么我不能将我的 css 链接到我的 ejs 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44642090/

相关文章:

html - border-bottom 丢弃整个 div

node.js - 如何创建智能合约实例并与我的智能合约功能交互?

javascript - 如何在命令行中运行 express js(node js) - linux

javascript - Angular +图像上传。将表单数据传输到后端时遇到问题

objective-c - 如何在 Objective C 中添加 CSS

javascript - Z-index 大于 Fancybox?

html - 如何为预选标签和选定标签提供不同的背景颜色?

html - 不滚动的 Bootstrap 列

HTML 电子邮件 : top and bottom aligned content

html - 如何使叠加层出现在用户 View 中,即使在滚动时也是如此?