javascript - node中如何在jade模板中引入静态文件(css&js)?(不使用express)
PHP中文网
PHP中文网 2017-04-10 16:03:32
[JavaScript讨论组]

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
伊谢尔伦

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

PHP中文网

我第一眼的感觉是使用绝对路径会比较靠谱吧。

link(rel='stylesheet',type='text/css',href='../public/css/main.css')

换成

link(rel='stylesheet',type='text/css',href='/public/css/main.css')

反正无非就是路径问题,也没有什么好分析的哈。

黄舟

我这边处理的方式是把 非 “text/html” 格式的请求,另外处理

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号