jekyll静态站点生成器与sqlite3

问题描述 投票:1回答:3

我知道Jekyll的意思是“不要使用数据库,而是使用静态文件”,但是如果我想在我的static网站上实施评级,只是为了能够存储我的每个学生评出一些成分的星星数量,以及然后显示一个平均值,并且'sqlite'是一个基于文件的数据库,是否可以使用一些javascript api从该sqlite文件写/读?

javascript sqlite jekyll
3个回答
3
投票

您可以尝试firebasecloudbase.io他们都提供免费计划和JavaScript API。

Firebase有一个very good documentation


1
投票

您不应该使用JavaScript来访问您的数据库 - 它会使它易受攻击,因为您的信息会暴露给客户端。 It's definitely possible but highly not recommended.

但是,有一些方法可以使用use Jekyll in conjunction with more appropriate languages like PHP,这可能是您正在寻找的,也可能不是。我并不完全熟悉Jekyll的工作原理,但如果我理解正确,如果它只是生成静态文件,你可能能够使你的网站的某些部分由Jekyll生成,但其他部分在PHP上运行以进行这些SQL调用。

虽然这样肯定会有点hacky所以我真的会评估你想要使用Jekyll的重要性。请记住,Jekyll是出于特定目的而制作的 - 将纯文本转换为静态站点,因此这可能不适合您。


0
投票

是的,可以为您的Jekyll生成的静态站点添加数据库功能。在我的情况下,我正在使用firebase。 Google的Firebase为我们提供了许多功能,如存储,数据库,托管以及使用功能访问无服务器架构。

所以你需要做的就是注册http://firebase.google.com然后创建一个应用程序,然后在你的JavaScript中添加以下代码在head标签中

<script src="https://www.gstatic.com/firebasejs/5.9.0/firebase.js"></script>
<script>
  // Initialize Firebase
  // TODO: Replace with your project's customized code snippet
  var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    projectId: "<PROJECT_ID>",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
  };
  firebase.initializeApp(config);

var timestamp = new Date().valueOf();
            var obj = {};
            obj[timestamp] = "1";

            firebase.database().ref('/').update(obj)
</script>

有关详细信息,您可以访问我关于此主题的博客

https://xyzcoder.github.io/firebase/2019/03/17/firebase-real-time-database.html

注意:我们还可以对谁可以读取和写入json存储的数据实施安全限制

谢谢,风

© www.soinside.com 2019 - 2024. All rights reserved.