来自Django我习惯于与主wsgi或其他应用程序分开提供我的静态资产和媒体(包括上传) . 这种平面文件结构易于导航和管理 .
我似乎无法找到任何有关如何使用Meteor执行此操作的示例(单独提供静态资产/媒体) .
-
有标准方法吗?
-
是否有提供此功能的软件包?
我的最终目标是:
-
能够更直观地导航所有静态资产和媒体,并从公共可访问的URL访问它们,而无需热重建流星应用程序 . “public”文件夹不适合我...特别是对于上传的媒体 .
-
在迁移应用程序时或通过我编写的自定义应用程序/程序包手动上传到此系统路径(与主流星应用程序分开) .
-
浏览/解析meteor app / package的路径
4 回答
如果所有静态资产都有一个公共路径,例如
/static/...
,那么您可以通过一个目录告诉nginx
对该路径的alias个请求您可以在流星应用程序中设置一个文件服务器,使用节点
fs
模块为它们提供服务,然后使用Picker之类的服务器,或者如果不能解决问题,可以在Meteor here中添加连接处理程序 .默认情况下,Meteor会忽略隐藏目录,因此如果您需要
.assets/
之类的内容,可以将资源放在app目录中,否则运行meteor的用户可以访问文件系统的任何位置 .这里's a working server for text files that I just threw together. You' ll需要先做
meteor add meteorhacks:picker
:如果出于性能和可伸缩性的原因(请参阅我的评论),您可能需要使用高速缓存代理 . 最初,代理将直接从Meteor应用程序获取静态文件,但后续请求将从其缓存中提供 .
本文(nginx-caching)是关于如何使用Nginx设置缓存代理的一个很好的读物 . 此外,Meteorpedia还有一个article解释如何设置专为Meteor应用程序量身定制的Nginx缓存 .
假设您的meteor应用程序位于
/www/meteor
,并且您希望从/meteor
树之外的目录提供静态资源,以便文件添加/更改/删除不会导致应用程序重新启动,例如/www/static
因此,首先在nginx中定义您的Meteor路径,然后为静态路径定义不同的根,例如:
documentation