链接到 Meteor.js 和 Telescope 中 public 文件夹中的资产

Linking to assets in the public folder in Meteor.js and Telescope

我在 Meteor 上使用 Telescope,但无法访问我的 public 文件夹中的任何内容。在我的 Meteor 应用程序中,我有一个包含 public 文件夹的包 - 其中包含 images/fonts,但我未能正确地 link。

我是 Meteor 和 Telescope 的新手,所以我想我搞砸了一些基本的东西。这些是我正在使用的:

/public 的文件结构路径:

MyApp/Packages/ThemeName/public/

其中包含三个文件夹:iconsimagesfonts

到 link 到我 CSS 中的字体,我正在使用 @font-face:

@font-face {
    font-family: Neuzeit; 
    src:
    url("/fonts/neuzeit-book.css"),
    url("/fonts/neuzeit-book.eot"),
    url("/fonts/neuzeit-book.svg"),
    url("/fonts/neuzeit-book.ttf"),
    url("/fonts/neuzeit-book.woff");
}
body {
    font-family: Neuzeit;
}

但是这些字体没有加载,我在控制台中收到错误消息:Failed to decode downloaded font: http://localhost:3000/fonts/neuzeit-book.ttf [index:1]。我为每个来源都得到了这个。此外,我还尝试 link 到同一包中我的模板中的图像:

<img src="/icons/icon-close.png" />

但后来我得到一个损坏的 link 图标而不是页面上的图像 - 奇怪的是,控制台中的图像没有 404。

这是权限问题吗?我已经提到 this SO article 但这最终变得无关紧要,因为我相信我写的是正确的路径吗?请指教!

/public 需要位于应用程序的根目录下,而不是在 /Packages/ThemeName/public/

您链接到错误的 URL: 而不是这个:

url("/fonts/neuzeit-book.css")

应该是这样的:

url("/packages/your-theme-name/public/fonts/neuzeit-book.css")

但是您应该确保它通过 addFiles() 包含在您的 package.js 文件中