node中如何在jade模板中引入静态文件(css&js)?(不使用express)

搜索得知,通过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?
谢谢!

阅读 10.1k
3 个回答

href,其实就是向服务器发送的GET请求,node那边要判断下路由路径,用fs模块把css文件的内容读出来,再返回给客户端就好了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏