Github Pages error: yaml file query returns an empty file
Github Pages error: yaml file query returns an empty file
我有一个托管在 Github 页面上的静态网站存储库。 javascript 必须加载两个文本文件(更准确地说是 .yml
文件)存储在 data
文件夹中的同一存储库中。用于加载这两个文件的函数如下:
async function readTextFile(path) {
console.log("Path:", path);
const response = await fetch(path);
console.log("Response:", response);
const text = await response.text();
console.log("Text:", text);
return text;
}
export async function loadBodiesData() {
const content = await readTextFile("./data/kspbodies.yml");
/* Some post processing */
}
export async function loadConfig() {
const content = await readTextFile("./data/settings.yml");
/* Some post processing */
}
kspbodies.yml
文件已正确加载,其内容显示在控制台中 (Text: ...
)。然而 settings.yml
文件似乎是空的 (Text: <empty string>
)。该文件的存在是因为直接从其 URL 查看此文件不会引发 404 错误,但 returns 是一个空文件(0 字节大小)。
- 这是现场演示:https://krafpy.github.io/KSP-MGA-Planner/(打开开发控制台)
- 源代码库:https://github.com/Krafpy/KSP-MGA-Planner/tree/yaml-load-fail
kspbodies.yml
和 settings.yml
位于 /data
- 上面的代码位于
/dist/main/utilities/data.js
并从 /dist/main/main.js
调用
我试过的
- 等待几个小时,以防需要“检测到”所有文件
- 将
settings.yml
重命名为其他名称
- 正在创建一个内容与
settings.yml
相同的新文件,它的 URL returns 也是一个空文件
注意:该网站在本地服务器上运行完美。
有谁知道这个问题从何而来以及如何解决?
提前致谢。
好的,我找到问题了。
它实际上来自 yaml 文件中使用的语法。文件中的第一个字符似乎很重要。我对 YAML 文件的内容进行了试验,这是通过托管 github 页面加载时的结果:
- 最简单的内容:正确加载
test: 42
- 添加了
---
和 ...
,如 Wikipedia page for YAML 中所述:加载一个空文件
---
test: 42
...
- 在
---
之前添加了评论:正确加载
# Test file
---
test: 42
...
所以似乎有一个以 ---
开头的 YAML 文件会使文件的内容被服务器忽略。 github 服务器和 vscode yaml 文件的实时服务器之间使用的语法标准可能有所不同。
我有一个托管在 Github 页面上的静态网站存储库。 javascript 必须加载两个文本文件(更准确地说是 .yml
文件)存储在 data
文件夹中的同一存储库中。用于加载这两个文件的函数如下:
async function readTextFile(path) {
console.log("Path:", path);
const response = await fetch(path);
console.log("Response:", response);
const text = await response.text();
console.log("Text:", text);
return text;
}
export async function loadBodiesData() {
const content = await readTextFile("./data/kspbodies.yml");
/* Some post processing */
}
export async function loadConfig() {
const content = await readTextFile("./data/settings.yml");
/* Some post processing */
}
kspbodies.yml
文件已正确加载,其内容显示在控制台中 (Text: ...
)。然而 settings.yml
文件似乎是空的 (Text: <empty string>
)。该文件的存在是因为直接从其 URL 查看此文件不会引发 404 错误,但 returns 是一个空文件(0 字节大小)。
- 这是现场演示:https://krafpy.github.io/KSP-MGA-Planner/(打开开发控制台)
- 源代码库:https://github.com/Krafpy/KSP-MGA-Planner/tree/yaml-load-fail
kspbodies.yml
和settings.yml
位于/data
- 上面的代码位于
/dist/main/utilities/data.js
并从/dist/main/main.js
调用
我试过的
- 等待几个小时,以防需要“检测到”所有文件
- 将
settings.yml
重命名为其他名称 - 正在创建一个内容与
settings.yml
相同的新文件,它的 URL returns 也是一个空文件
注意:该网站在本地服务器上运行完美。
有谁知道这个问题从何而来以及如何解决?
提前致谢。
好的,我找到问题了。 它实际上来自 yaml 文件中使用的语法。文件中的第一个字符似乎很重要。我对 YAML 文件的内容进行了试验,这是通过托管 github 页面加载时的结果:
- 最简单的内容:正确加载
test: 42
- 添加了
---
和...
,如 Wikipedia page for YAML 中所述:加载一个空文件
---
test: 42
...
- 在
---
之前添加了评论:正确加载
# Test file
---
test: 42
...
所以似乎有一个以 ---
开头的 YAML 文件会使文件的内容被服务器忽略。 github 服务器和 vscode yaml 文件的实时服务器之间使用的语法标准可能有所不同。