搜索得知,通過express框架,指定public然后可以引入css等文件。
但是,如果不使用框架,如何實現jade等模板的外部文件引入?
文件目錄如下:
blog
/index.js
/public
/js
/css
/img
/views
/index.jade
/node_modules
/...
jade模板如下
doctype html
html
head
meta(charset='utf-8')
title #{blog_title}
link(rel='stylesheet',type='text/css',href='../public/css/main.css')
路由處理函數如下
function start(response,request){
var jade = require('jade');
var fn = jade.compileFile('./views/index.jade');
var html = fn({'title':'test'})
response.writeHead(200,{"Content-Type":"text/html"})
response.write(html)
response.end();
}
exports.start = start
結果是,模板可以正確加載,但是樣式和行為文件加載失敗,提示:
Failed to load resource: the server responded with a status of 404 (Not Found)
請問
1.為何會出現這樣的錯誤?
2.怎樣才可以在服務器模板正確引入css和js?
謝謝!
認證0級講師
href,其實就是向服務器發(fā)送的GET請求,node那邊要判斷下路由路徑,用fs模塊把css文件的內容讀出來,再返回給客戶端就好了。
我第一眼的感覺是使用絕對路徑會比較靠譜吧。
link(rel='stylesheet',type='text/css',href='../public/css/main.css')
換成
link(rel='stylesheet',type='text/css',href='/public/css/main.css')
反正無非就是路徑問題,也沒有什么好分析的哈。