Meteor:以root身份显示静态HTML页面

时间:2013-12-03 04:45:45

标签: meteor

我制作了一个流星应用程序,添加了一个完整的.html,.jpeg等公共目录...

除了去我的域根目录没有显示任何东西之外,这一切都很好用。我必须输入/index.html。

如何让我的域名根目录转到public / index.html?

4 个答案:

答案 0 :(得分:0)

Meteor并不是真正考虑到提供静态内容(以HTML的形式)。 public文件夹实际上用于提供诸如favicon之类的内容,也可能是这里或那里的图像(http://docs.meteor.com/#structuringyourapp)。

虽然你可以在技术上做类似的事情:

if (Meteor.isClient) {
  window.location = 'index.html';
}

这不是真的应该如何运作。这带来了其他问题,例如确保这仅适用于/路线。

更好的解决方案是让nginx站在正在运行的Meteor实例前面并直接提供静态内容。

这一切都取决于你为什么试图像这样服务index.html。如果是出于SEO目的,只需使用普通的Meteor模板(和路由)并使用spiderablehttp://docs.meteor.com/#spiderable)包。

答案 1 :(得分:0)

Dino的建议绝对是正确的,但是根据您的描述(“我的域根目录没有显示任何内容”),听起来您可能只想将index.html放入客户端文件夹并对其进行编辑以适应方式meteor喜欢它,即删除所有doctype声明和html标签。之后,当您访问域根目录时,您应该会看到一些内容。

如果您想提供多个不同的.html文件,可以查看iron-router,它允许您进行服务器端路由。

答案 2 :(得分:0)

使用mywebsite.com/public/index.html并非标准做法。

一个原因是,如果不导航到mywebsite.com/public,您的网站将无法呈现索引页。

但是如果您真的想这样做,只需在公共文件夹中添加一个公用文件夹即可。

public/public/index.html

答案 3 :(得分:0)

听起来你想要做的就是将index.html文件放入流星模板的形式,然后将该模板定义为用于'/'路径的模板。你的路线档案。

例如,您的模板如下所示:

<tementer code hereplate name="home">
  <h1>My Home Page</h1>
</template>

在您的路由器文件中:

Router.route('/', function() {
 this.render('home');
 this.layout('homeLayout');
});

这假设您正在使用Iron Router并且具有您用于布局的单独模板文件。如果您需要进一步的示例,请告诉我,我将很乐意为您提供帮助。