2017-06-20 66 views
-1

我有問題連接我的css文件到我的ejs文件。我想我有標準的node.js/express設置。我試圖將位於我的public/css目錄中的main.css文件連接到位於我的視圖中的我的index.ejs文件。 HTML和路由工作正常。這裏是我的app.js的代碼。爲什麼我不能將我的CSS鏈接到我的ejs文件?

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> 
    <title><%= title %></title> 
    <link type="text/css" rel='stylesheet' href='../public/css/main.css' /> 
    </head> 

回答

1

在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

+0

這並獲得成功使用這個「絕對」尋路!非常好知道絕對路徑 –

相關問題