微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – Express:如何将font-awesome作为静态内容提供?

我使用express来在我的网站上提供静态内容,我想要整合FontAwesome(npm install font-awesome).但是在Font-Awesome的css中,字体文件链接附有一个查询字符串,其中包含表达不明白的版本信息.

有没有人遇到这个并找到了修复?是否有一种简单的方法可以使表达式忽略静态内容的qs?

var express = require('express')
var app = express()

app.use('/static',express.static('./node_modules/font-awesome/css'))
app.use('/static',express.static('./node_modules/font-awesome/fonts'))

// response 200 | /static/font-awesome.min.css
// error 404    | /static/fontawesome--webfont.woff?v=4.6.3

更新
正如@DenysSéguret所指出的那样,我认为不是qs.实际的请求是针对/fonts/fontawesome–webfont.woff?v = …

app.use('/fonts',express.static('./node_modules/font-awesome/fonts'))

解决方法

当您的浏览器请求/static/fontawesome–webfont.woff?v=4.6.3时,服务器可以自由忽略?v = xxx部分.这就是express.static模块所做的事情.该部分的重点是防止浏览器和代理使用旧版本的文件.

所以问题不在于你认为的问题.问题是您将静态路由映射到两个服务器.第一个找不到文件并发出404.

(脏)解决方案1:

更改您的映射

app.use('/static',express.static('./node_modules/font-awesome'))

并更改网址:

/static/fonts/fontawesome--webfont.woff?v=4.6.3

我说它很脏,因为你正在提供节点模块的未经检查的内容(当你进行npm更新时会更新).你永远不应该这样做.

解决方案2:

创建一个静态目录(名称无关紧要)并将其放入./node_modules/font-awesome/css和./node_modules/font-awesome/fonts目录的内容中,然后使用

app.use('/static',express.static('./static'));

原文地址:https://www.jb51.cc/nodejs/241242.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐