我发现official documentation中关于应用程序结构的部分对我来说很困惑。它首先说
唯一的服务器资产是JavaScript和私有文件 子目录。
然后立即
Meteor收集所有JavaScript文件,不包括任何内容 客户,公共和私人子目录......
以后
Meteor收集树中的所有JavaScript文件,但有例外 服务器,公共和私有子目录,为客户端...
和
加载客户端,服务器和测试子目录之外的文件 在客户端和服务器上!
这些似乎与我相矛盾。例如,如果我将一些JavaScript文件放在private
中,它们会被Meteor收集吗? 1和3,是和仅服务器; 2,不; 4,是和服务器和客户端。
一种可能的解释是,“JavaScript文件”集不是集合“文件”的子集,这在逻辑上不合理。我知道this answer为结构提供了一个清晰的表格,我最终可能会采用这种方式。但是我仍然需要有人在官方文档中清除这部分的含糊之处。谢谢。
答案 0 :(得分:2)
首先,我应该将文件分成3种类型
唯一的服务器资产是JavaScript和私有子目录中的文件。
这些文件被视为“静态”,并且不会运行私有的js文件。这意味着private
和server
中的文件对客户端不可见。 (上述标准中的2部分)
客户端,服务器和测试子目录外的文件都加载到客户端和服务器上!
它也应该说私有和公共,浏览器上没有加载private
和public
文件。 (这些都是这样提到的,但是参考了1)因此引起了令人困惑的语言
测试 - 仅用于测试,未经Meteor解析
私人只能通过Assets
访问服务器访问浏览器无法访问的流星未解析的静态文件 公开存储浏览器可以访问的静态文件,映射到/
路径
服务器文件仅在服务器上运行,并作为Meteor的一部分进行解析,
客户端文件仅在网络浏览器上运行,是Meteor的一部分
软件包存储meteor将以特殊方式解析的软件包,除了Meteor软件包之外不能包含任何内容。可以包含被视为私有,公共,客户端或服务器文件夹的一部分的代码。
。(以。开头的文件夹和文件。) - 忽略
..〜 - 以tilde
结尾的文件夹 - 忽略
其他任何东西作为Meteor的一部分进行解析,并在客户端和服务器端运行。
由客户端或服务器运行并由Meteor解析的任何内容通常在生产中连接和缩小。
客户端可访问的静态文件 - 注释这些文件将与应用程序分离并在生产中的虚拟静态文件夹中运行(例如图像,字体,视频,非js文件)
这不是一个像其他问题的表,它解释了如何构建应用程序,但更多的是Meteor如何解释上面文件夹中的文件。