什么是/ public的Meteor服务器端路径?

Bob*_*ler 6 directory server-side meteor

在Meteor客户端,我知道项目公共目录中的文件在'/'处引用.

它们如何在服务器端引用?

我试图用fs.readdir获取目录列表,但我不知道如何构建路径到达服务器端等效于客户端'/ images/gallery'.

有什么建议?

Nat*_*eid 8

接受的"./public/"答案在Meteor 1.1中对我不起作用.

但是,Meteor通过meteor_bootstrap .serverDir变量提供服务器路径,因此要获取公用文件夹路径,请使用以下行:

path.join(__meteor_bootstrap__.serverDir, "../web.browser/app");
Run Code Online (Sandbox Code Playgroud)

这适用于我的本地Windows机器和meteor.com.

请注意,这是您的公用文件夹的"运行"版本,所以 - 至少在开发中,我还没有在生产中检查这部分 - 它实际上是您的开发"public"文件夹和所有客户端JS的合并文件.如果项目中有"config"文件夹,公共目录中有"config"文件夹,则"运行"路径将包含两者的内容.

  • 只是为了确认,这适用于我的开发机器和使用`meteor build`创建的生产服务器. (2认同)

Kri*_*r K 0

当我使用 fs-module 时,我只使用“./public”作为我的公共文件夹,在我的本地安装上运行良好。

然后我使用环境变量将其设置为生产服务器上正确的值。

编辑(示例):

此方法将返回公共文件夹中的所有 .HTML 文件:

getHtmlFilesInPublicFolder: function() {

    var files = fs.readdirSync('./public/');

    var cleanedUpFiles = _(files).reject( function(fileName) {
        return fileName.indexOf('.html') < 0;
    });

    return cleanedUpFiles;

}
Run Code Online (Sandbox Code Playgroud)