【网站出海】静态网站迁移至Astro架构

本文来自公众号:开发者码神 。 欢迎关注第一时间阅读精华文章。

Astro 是最适合构建像博客、营销网站、电子商务网站这样的以内容驱动的网站的 Web 框架。Astro 以开创了一种新的前端架构而闻名,与其他框架相比它减少了 JavaScript 的开销和复杂性。如果你需要一个加载速度快、具有良好 SEO 的网站,那么 Astro 就是你的选择。

如果你想要你的网站有好的排名,除了优质的内容,其次就是好的网站结构。

本文就是将市面上的好看的html静态模板转换为Astro格式。

在阅读本文之前,建议先通篇阅读Astro基础教程。

https://docs.astro.build/zh-cn/getting-started/

1、安装

npm create astro@latest

2、迁移全局样式

在src/styles/创建一个新文件(你需要先创建一个styles文件夹)。
把下面代码复制到你新创建的文件src/styles中:

3、迁移图片和js资源

1、在src下面创建图片文件夹、创建js文件夹

---
import '../styles/style.css';
import '../styles/colors/default.css';
import '../styles/responsive.css';
import '../styles/fontawesome-free-5.14.0-web/css/all.min.css';
import '../styles/icofont/css/icofont.css';
import '../styles/googleapos.css';
---
<img alt='img' src='src/images/demo/silverspies_avatar-60x60.png' class='avatar' height='60' width='60' loading='lazy'/></a>

<Footer />
<!-- end #footer -->
 

<!-- Footer Theme output -->
 <script>
    import "../js/custom.js";
    import "../js/jquery.sticky-kit.js";
    import "../js/masonry.min.js";
    import "../js/jquery-3.6.0.min.js";
 </script>
</body>
</html>

4、创建组件

分析一下网页,有哪些组件是复用的。

导航拦组件
  1. 创建一个新文件:src/components/Navigation.astro
  2. 导入并使用

Footer组件
  1. 创建组件

  1. 导入组件

社交媒体组件
  1. 创建Social.astro

  1. 导入

Header组件

  1. 创建header组件

  1. 引入

5、创建布局

你现在仍然在每个页面上重复渲染一些 Astro 组件。是时候再次重构,创建一个共享的页面布局

基础而布局-BaseLayout
  1. 创建一个新文件:src/layouts/BaseLayout.astro(你需要首先创建一个 layouts 文件夹)

将静态文件中的index中的通用部分放到这里,比如head,header、footer、js、css,并预留这样可以加载index网页的内容进入布局。

文章布局-MarkdownPostLayout
  1. 因为文章也是包含header和footer的,所有可以把之前的基础布局引入。

这里有个注意点,就是本地静态文件的路径要写绝对路径,不能写相对,如下

  • img转存失败,建议直接上传图片文件

  1. 在看看文章页

因为我没打算用markdown写文章,所有就这里只放文章的内容,这里引入了我们刚刚创建的MarkdownPostLayout布局,这时候访问http://localhost:4321/posts/post-1,就能展示文章内容了。

6、动态展示文章列表

1、引入文章集合变量。

const allPosts = await Astro.glob('../pages/posts/*.md');
做循环
<img width="250" height="300" src={post.frontmatter.image.url} class="attachment-qefood-wp-thumbnail-blog-grid" alt="img" loading="lazy" /><a href="blog-post.html"></a>            

2、这里可以把文章模块抽离成单独的文件,创建…/components/BlogPost.astro’,把内容传到组件渲染,这样其他地方引用也会很方便,比如下面的标签页搜索

7、生成标签页面

  1. 创建[tag].astro文件,src/pages/tags/[tag].astro

因为创建好了基础组件布局(BaseLayout),所有页面很好写,只要补充标签也主题内容就行,这里又能引用上面创建好的BlogPost组件,直接复用,一个标签页就出来了。

访问:http://localhost:4321/tags/番茄

标签搜索页会把番茄传入,并和所有文章的tags标签进行筛选,选出最终页

8、生成标签索引页

在tags下创建index.html,然后遍历所有文章去除tags标签即可

然后在首页挂上次标签主页即可

然后修改文章详情页中关于标签的部分(MarkdownPostLayout),添加链接

9、增加订阅源

Astro 提供了一个可自定义包,用于快速为你的网站添加一个 RSS 订阅源。

这个官方包会生成一个非 HTML 文档,其中包含有关你的所有博客文章的信息,可以被 Feedly、The Old Reader 等 订阅源阅读器(Feed Reader) 读取。每次重新构建你的网站时,该文档都会更新。

个人用户可以通过在订阅源阅读器中订阅你的订阅源,在你的网站上发布新博客文章时会收到通知,这使它成为一个受欢迎的博客功能。

  1. 安装
npm install @astrojs/rss
  1. src/pages/ 目录下创建一个名为 rss.xml.js 的新文件。

  1. 在 Astro 的配置文件中设置 site 属性为你的网站自己的唯一 Netlify URL。

  1. 这个 rss.xml 文档只有在构建你的网站时才会创建,因此在开发过程中无法在浏览器中查看该页面。退出开发服务器,并运行以下命令,首先在本地编译你的网站,然后查看编译的预览:
npm run build

npm run preview

访问:http://localhost:4321/rss.xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值