用express4.0建好项目之后 我npm安装了moment.js库 现在希望在客户端加载moment.js 于是我这样引用
<script src="/moment/moment.js"></script> 得到404错误 也就是说 http://127.0.0.1:3000/moment/moment.js 访问始终抛出了一个404错误
那么现在我不太理解的是moment.js 是否需要单独的移送到public 目录下面然后以静态的形式访问 否则的话难道需要自己写路由代码像
app.use(’/’, routes); app.use(’/users’, users);
这样把url路由到对应的文件,但是客户端加载 socket.io 例如这样
<script src="/socket.io/socket.io.js"></script>
成功了 现在我就很不理解这个路由加载的过程 到底express 自己创建的web服务器是怎么样查找对应文件的?
用bower安装到public下面去
我倒是很好奇,为什么加载socket.io能成功。。。
要有一个概念,express是可以设置多个静态目录的。可以理解为socket.io为自己本身设置了静态目录,而moment没有,所以使用的是默认的public目录。但是public下并没有对应的moment.js文件,所有就报404错误了。
@okoala 应该是你说的这个问题,这样解释起来比较合理,解决方案应该是用1楼的 我现在没有把moment载入到客户端了,在stackoverflow 上面搜索到一种比较好的解决方案
var moment = require(‘moment’); res.render(‘index’, { title: ‘Express’, msgData: msg , moment: moment});
视图中就可以这样调用
<%= moment(msgData[i].created_at*1000).fromNow(); %>