美文网首页我爱编程
从头搭建个人blog

从头搭建个人blog

作者: wncbbnk | 来源:发表于2018-06-09 21:47 被阅读0次

前端采用nuxt

为了节省配置时间(主要我前端是幼儿园水平...),采用create-nuxt-app做开发.

鉴于yarn比较受追捧,采用yarn做包管理.

yarn create nuxt-app <my-project>

前端展示框架采用element-ui

SSR服务器选择koa

nuxt异步数据,采用axios

这个create-nuxt-app会帮助设置在nuxt.config.js里
异步数据加载,这个是blogFe直接调用blogApi,不是用户浏览器里Ajax请求

export default {
    // 这个ctx就是koa的ctx,奇怪的是cookies函数不能用,但是
    // ctx.req.headers.cookie这个可以拿到
ctx.request.cookie
    async asyncData(ctx) {
        //console.log(ctx)
        //console.log(ctx.req.headers.cookie)
        const msg = await ctx.app.$axios.$get('/articles/1')
        return { msg: msg }

    }
}

在用户浏览器里ajax的异步请求:
这个会有CORS的问题,初步打算对外用一个地址,通过nginx把前端/后端请求分发给blogFe/blogApi

<script>
export default {
    methods: {
        onSubmit(){
            let resp=this.$axios.$post(
                "http://<ip>:<port>/<blabla...>", 
                data
            )
        }
    }
}
</script>

一些组件直接使用社区推荐的module

markdown

markdown编译采用nuxt社区推荐的markdown-it
修改nuxt.config.js文件,增加markdown-it配置

//nuxt.config.js
  modules: [
    '@nuxtjs/markdownit',
  ],

比较有意思的是可以这么写,markdown文件直接import引入

<template>
<div>
  <!-- 不知道为啥总会访问amazonaws,加上#sonicMaster就不了 -->
  <div id="sonicMaster"></div>
  <!-- .markdown-body是github-markdown-css用的 -->
  <div class="markdown-body" v-html="testMd"></div>  
</div>
</template>

<script>
"use strict";
import testMd from '../../md/test.md'
export default {
//   data() {
//     return {
//         testMd: testMd,
//     }
//   },
    computed: {
      testMd() {
        return testMd
      }
    }
}
</script>

markdown css风格(highlight.js也挺好)

显示css使用类似github风格的github-markdown-css
我选择在nuxt.config.js里加上配置:

  css: [
    'github-markdown-css/github-markdown.css',
  ],

后端采用golang/gin框架

数据库暂时选择mysql, 后期可能换postgres

据说postgres比mysql更好,现在还不熟,等熟了换换试试

nginx做转发,为了绕过CORS,采用nginx配置,通过路径分别传给nuxt跟gin.

配置如下:

upstream blogApi{
    server <ip>:<port>;
}

upstream blogFe{
    server <ip>:<port>;
}

server {
    listen <port>;
    server_name localhost;
    location /api/ {
        proxy_pass http://blogApi;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location / {
        proxy_pass http://blogFe;
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

相关文章

  • 从头搭建个人blog

    前端采用nuxt 为了节省配置时间(主要我前端是幼儿园水平...),采用create-nuxt-app做开发. 鉴...

  • VuePress搭建个人blog

    VuePress搭建个人blog 近期想要搭个blog,认真写写笔记,想来想去还是放在github上吧,静态网站生...

  • Hexo 搭建个人blog

    Hexo 好给力,终于慢慢借助hexo + github 来搭建免费的blog

  • Hexo搭建个人Blog

    Hexo驱动搭建个人主页简单教程,以及主题配置简单介绍。 第一步 首先要创建个人blog请保证以下需要用到的你都有...

  • hexo + github搭建个人blog

    hexo是一个台湾人做的基于Node.js的静态博客程序,优势是生成静态文件的速度非常快,支持markdown, ...

  • hexo入门

    hexo快速搭建个人博客 https://hexo.io/zh-cn/docs/通过hexo快速搭建个人blog。...

  • hexo结合github搭建个人blog

    github创建代码仓库 在github上创建一个仓库,仓库的名字必须是 你的用户名.github.io,比如我的...

  • Hexo+Github搭建个人Blog

    本地OS:OSX 10.11.6Github:github.comHexo:hexo.io 1、安装环境 1、安装...

  • 【BLOG】hexo搭建blog教程

    1、概述 特点: nodejs生成搭建快速 支持markdown git一键部署 插件丰富,生态完善 2、环境准备...

  • Gitee+Hexo搭建个人博客

    Gitee+Hexo搭建个人博客 用Hexo 3 搭建github blog Hexo图片显示(typora工具辅...

网友评论

    本文标题:从头搭建个人blog

    本文链接:https://www.haomeiwen.com/subject/qvrxeftx.html