【问题标题】:Cannot get the public folder to work in meteor 0.3.7无法让公用文件夹在流星 0.3.7 中工作
【发布时间】:2012-07-04 19:07:13
【问题描述】:

所有, 几周前我在Meteor's GitHub page 上发布了这个问题,但没有得到答复。这个问题看起来很简单,也许没人能相信我。

以下是重现问题的步骤。我创建了一个名为“foo”的全新香草流星项目,使用:

meteor create foo

我在其中创建了一个“公共”文件夹并在其中复制了一张图片 (troll.jpg)。

然后我编辑了 foo.html 独家来显示图片。我从流星的示例中看到,与公共文件夹中的内容对应的 URL 只是 / 。

<head>
  <title>foo</title>
</head>

<body>
  <img src="/troll.jpg">
</body>

我删除了我不使用的 foo.js 和 foo.css。

然后我启动流星,页面只显示一个损坏的图像占位符。网络浏览器的控制台(MacOS 的 Chrome 20.0.1132.47)说:

Resource interpreted as Image but transferred with MIME type text/html: "http://localhost:3000/troll.jpg". innerhtml.js:80
_htmlToFragment innerhtml.js:80
Meteor.ui.render liveui.js:33
(anonymous function) template.foo.js:1
ready startup_client.js:9

使用 Safari 我得到了同样的结果。 Meteor 在 GitHub 上的示例似乎可以正常工作。我究竟做错了什么?谢谢。

G.

【问题讨论】:

  • 你在你的 JS 代码中做了什么特别的事情吗?当您从 Meteor 的服务器部署和测试它时,是否也会发生这种情况?如果在 src 属性中不包含 /,它的行为会有所不同吗?我在你的解释中没有看到任何明显的错误,并且认为这只是工作......
  • 现在也经过测试,无法在 Gentoo 上的 Google Chrome 上重现,但我在开发分支上。对我来说,我只是将image/png 作为 MIME 类型...
  • 谢谢汤姆。我在另一台 Mac 上重复了这个实验,一切正常,没有 MIME 警告。我曾尝试重新安装流星并对应用程序进行“流星重置”,但没有以这种方式实现任何目标。所以,看起来我的第一台 Mac 使用错误的 MIME 标头向 Web 浏览器提供图像,但这怎么可能呢?
  • 您的第一台笔记本电脑上是否已经安装了 Node.js?它或节点模块的不同版本也可能导致问题。
  • 新发现!这不是 MIME 问题。我相信我的流星实例无法识别我正在从“公共”文件夹请求内容,因此像任何其他 URL 一样响应图像的 URL……这意味着返回“网站”而不是图像。证明是 curl localhost:3000curl localhost:3000/troll.jpg 具有相同的输出,即流星渲染的网页!现在怎么办?流星在哪里理解 URL 指的是公共的,会出现什么问题? (例如文件权限、区分大小写的文件系统...)

标签: meteor


【解决方案1】:

我遇到了一个类似的问题,我认为它将字体文件作为 text/html mime-type 提供,但结果证明我的字体文件的路径是错误的。修复路线解决了问题。

这很令人困惑,因为服务器应该返回 404 错误而不是 200 OK,但它现在可以工作了。

【讨论】:

  • 是的,我想说,无论我的问题是什么,Meteor 不会记录对格式错误/不存在的 URL 的不同请求到格式良好的现有 URL 的不同请求。在使用开发 Web 服务器时,它至少应该在每次请求第一种 URL 时发出警告。无论如何,我的情况与代码中的错误路径无关,正如我通过在另一台 Mac 上成功运行相同的 Meteor 应用程序所证明的那样。
猜你喜欢
  • 2012-07-20
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 2015-07-02
  • 2015-03-17
  • 1970-01-01
相关资源
最近更新 更多