皮皮网

【芋道源码 打包】【终极主升源码】【苏州商城网站源码】js个人博客源码_js 博客

2024-11-15 06:25:10 来源:spwm生成源码

1.手把手教你搭建Hexo博客
2.JS组合JSFANS聚集处
3.5分钟教你搭建个人博客,个人纯白嫖,博客博客花了一分钱你来打我
4.如何在博客园中运行js代码
5.谁可以给我一个网页 用dreamware写的源码 要源代码 谢谢啦 随便一个也可以
6.nodejs个人博客数据分页开发教程

js个人博客源码_js 博客

手把手教你搭建Hexo博客

       搭建Hexo博客的步骤详述

       Hexo是一个基于Node.js的全静态博客系统,无需数据库支持,个人且对服务器资源消耗极低。博客博客本文将指导开发者快速搭建Hexo博客,源码芋道源码 打包包括准备工具、个人环境设置、博客博客部署过程等。源码

       首先,个人准备一台安装了Node.js和Git的博客博客电脑,操作系统不限。源码其次,个人选择一台Linux系统如Debian、博客博客CentOS作为服务器。源码确保安装好Git、Nginx和NVM(多版本Node.js管理器),终极主升源码并安装Lighthouse服务器。

       在服务器端,安装宝塔镜像,设置端口,使用Git和Nginx完成网站创建。宝塔环境中,创建blog和imageHost两个网站文件夹,用于存放Hexo打包的苏州商城网站源码public文件和文件夹。配置Nginx创建Nginx配置文件,设置文件夹权限。

       在Git操作上,创建Git用户、仓库并指向工作空间到blog和imageHost文件夹。通过vim编辑post-receive文件,添加接收钩子,确保Git工作正常。智能粮库系统源码

       本地部署Hexo,安装Node.js、全局安装Hexo、初始化Hexo、运行Hexo以及打包推送到服务器。使用hexo init创建文件夹并初始化Hexo,运行hexo s部署到服务器。

       打包推送到服务器时,unity 粘液人源码安装推送插件,修改_config.yml文件以Git方式部署,生成public文件夹并推送。查看文件夹内容,使用浏览器访问Hexo博客。

       部署图床同样简单,创建本地仓库、添加并推送到服务器。在服务器上使用git操作完成上传。

       通过Nginx反代将两个文件夹融合,使用域名解析或Nginx反向代理实现图床文件夹为博客文件夹的子文件夹。

       最终效果为,通过添加美化和文章输出,部署到Lighthouse服务器的Hexo博客成功搭建完成。备份网站和Lighthouse对Hexo的兼容性也已详细解答。

JS组合JSFANS聚集处

       想要深入了解和参与JavaScript(JS)的全球社区?这里有几个推荐的地方,让你和其他JS爱好者一起交流、学习和分享。

       首先,你可以访问百度JS吧:t']}次阅读">{ $blog['readcnt']}</span>

        <span class="s-page-info info-comment" title="{ $blog['commentcnt']}条评论">{ $blog['commentcnt']}</span>

        <span class="s-page-info info-date">{ $blog['date']}</span>

        </p>

        </div>

        { /foreach}

        </div>

        <div id="right_side">

        this is side content

        </div>

        <div class="clear"></div>

        </div>

        <div id="footer">

        <ul id="footer_nav">

        <li><a href="">我的博客</a></li>

        <li><a href="">站点地图</a></li>

        <li><span>版权所有,保留一切权利</span></li>

        <li><span>由Zend支持(c)-</span></li>

        </ul>

        </div>

        </body>

       </html>

nodejs个人博客数据分页开发教程

       本文为大家分享了nodejs个人博客开发的数据分页,具体内容如下

       控制器路由定义

       首页路由:http://localhost:/

       首页分页路由:http://localhost:/index/2

       /

**

       * 首页控制器

       */

       var router=express.Router();

       /*每页条数*/

       var pageSize=4;

       /*首页*/

       router.get('/',function(req,res,next){

       var cid=0;

       F.model("article").assignIndexData(cid,1,pageSize,res);

       });

       /*首页分页*/

       router.get('/index/:page',function(req,res,next){

       var currentPage=parseInt(req.params.page);

       var cid=0;

       F.model("article").assignIndexData(cid,currentPage,pageSize,res);

       });

       分类列表分页路由:http://localhost:/category/分类id/分页

       /*分类页*/

       router.get('/category/:cid/:page',function(req,res,next){

       var cid=req.params.cid;

       var currentPage=parseInt(req.params.page);

       F.model("article").assignIndexData(cid,currentPage,pageSize,res);

       });

       模型数据部分

       控制器调用article模型的assignIndexData()方法,参数:分类id,当前页,每页条数,响应对象

       调用category模型的getAllList()方法得到分类list,参数:回调函数

       调用article模型的getCount()方法得到总条数,参数:分类id,回调函数

       调用article模型的getArticlePager()方法得到文章对象的数据list,参数:分类id,当前页,每页条数,回调函数

       对上一页,下一页进行-1和+1,并进行判断,上一页应大于0,下一页应小于等于总页数(总条数/每页条数 向上取整)

       把数据分配到模板上

       /

**

       * 文章模型文件

       */

       module.exports={

       /*获取条数*/

       getCount:function(categoryId,callback){

       var condition="";

       if(categoryId!=0){

       condition="where category_id="+categoryId;

       }

       var sql="select count(*) num from article "+condition;

       db.query(sql,callback);

       },

       /*获取分页数据*/

       getArticlePager:function(categoryId,currentPage,pageSize,callback){

       if(currentPage=0||!currentPage) currentPage=1;

       var start=(currentPage-1)*pageSize;

       var end=pageSize;

       var condition="";

       if(categoryId!=0){

       condition="where category_id="+categoryId;

       }

       var sql="select * from article "+condition+" order by time desc limit "+start+","+end;

       db.query(sql,callback);

       },

       /*归档*/

       getArchives:function(callback){

       db.query("select time from article order by time desc",callback);

       },

       /*分配首页数据*/

       assignIndexData:function(cid,currentPage,pageSize,res){

       var categoryModel=F.model("category");

       var articleModel=this;

       // 分类数据

       categoryModel.getAllList(function(err,categoryList){

       // 文章条数

       articleModel.getCount(cid,function(err,nums){

       // 文章分页

       articleModel.getArticlePager(cid,currentPage,pageSize,function(err,articleList){

       var nextPage=(currentPage+1)=Math.ceil(nums[0].num/pageSize) ? Math.ceil(nums[0].num/pageSize) : currentPage+1;

       var prePage=(currentPage-1)=0 ? 1 : currentPage-1;

       // 归档

       articleModel.getArchives(function(err,allArticleTime){

       var newArticleTime=[];

       for(var i=0;i

       newArticleTime.push(F.phpDate("y年m月",allArticleTime[i].time));

       }

       /*分配数据*/

       var data={

       categoryList:categoryList,

       articleList:articleList,

       cid:cid,

       nextPage:nextPage==0 ? 1 : nextPage,

       prePage:prePage,

       allArticleTime:newArticleTime,

       currentPage:currentPage

       };

       /*渲染模板*/

       res.render("home/index",data);

       });

       });

       });

       });

       }

       };

       模板部分

       href="/category//index/" rel="external nofollow" 上一页

       href="/category//index/" rel="external nofollow" 下一页

       效果图: