• 敲代码需要一丝不苟,Node静态化,ejs文件里多了一条外联下的Bug问题


    这个Bug是昨天晚上遇到,去SF社区提了出来,估计是太晚了,没人回答,今天早上两个回答。

    第一个人回答主要是解决双重回调,也怪我,我刚开始也以为是双重回调的问题,因为最近看的网上资料全是Promise和async/await解决回调问题。我想我真不会遇到了?其实不是。

    第二个大佬认真看了我贴的代码,然后一步步在评论区里沟通,最后说到了为什么css和头像文件会在请求req里出现,估计是我的静态化问题。然后我就把注意力转过来了,去看user.ejs,上来就发现了一个问题,我静态路由是app.use("/avatar",express.static("./avatar"));,在ejs里面传参还是要加上avatar这个虚拟路径的,我没加。 =-=,然后css和js脚本都是在public的,我直接静态app.use(express.static("./public"));,这个意思就是当用户不管访问你这个网站的什么东西,页面,资源,接口等等,都会优先从你的本地的public文件夹里先找,找的话就展示,找不到就继续走下面的路由,所以这个前面就不用加虚拟路径了,可是运行还是报那个错误,avatar undfined,这位大佬也提到了我req里为什么会有css请求啊,然后去看了public,我把jumbotron.css是放在css文件外面,静态化之后相当于在根目录,因为这个css里就放了body的两个样式,当时没多想放在直接放在public里,没有跟public的css文件放在一起,然后我又去看了ejs里这个css的外联,只有这一个css文件发生了请求,那么这个css的静态化是失败的,,我老老实实把这个css放在css文件夹,改成了,Bug解决,拍手。。。=-=

    估计是我一开始就在public下放着,所以我就直接"/",可能是有的链接写成是"/css"了。虽然不是什么高深的bug,但是仅从Node的这一点报错信息,也还是需要慢慢来排查。

  • 相关阅读:
    Serverless 解惑——函数计算如何安装字体
    构建安全可靠的微服务 | Nacos 在颜铺 SaaS 平台的应用实践
    OAM v1alpha2 新版:平衡标准与可扩展性
    人工智能与阅读能力的关系研究
    Java Web每天学之Servlet的原理解析
    ThreadLocal类的简单使用
    JavaScript之DOM创建节点
    css浮动(float)及清除浮动的几种实用方法
    Apache Sentry部署
    Spark机器学习解析下集
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/8086888.html
Copyright © 2020-2023  润新知