我制作了一个流星应用程序,添加了一个完整的.html,.jpeg等公共目录...
除了去我的域根目录没有显示任何东西之外,这一切都很好用。我必须输入/index.html。
如何让我的域名根目录转到public / index.html?
答案 0 :(得分:0)
Meteor并不是真正考虑到提供静态内容(以HTML的形式)。 public
文件夹实际上用于提供诸如favicon之类的内容,也可能是这里或那里的图像(http://docs.meteor.com/#structuringyourapp)。
虽然你可以在技术上做类似的事情:
if (Meteor.isClient) {
window.location = 'index.html';
}
这不是真的应该如何运作。这带来了其他问题,例如确保这仅适用于/
路线。
更好的解决方案是让nginx
站在正在运行的Meteor实例前面并直接提供静态内容。
这一切都取决于你为什么试图像这样服务index.html
。如果是出于SEO目的,只需使用普通的Meteor模板(和路由)并使用spiderable
(http://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并且具有您用于布局的单独模板文件。如果您需要进一步的示例,请告诉我,我将很乐意为您提供帮助。