如何在流星中创建动态资产

巴勃罗

我以为这很容易。我想创建用户可以通过单击链接下载的简单文件。

将所需内容写入服务器资产/应用文件夹,然后生成一个简单链接

<a href="/new.txt" download="yourNewFile.txt">Download> me!</a>

将文件写入流星的服务器端资产文件夹很容易。并且上面的下载链接将始终以您指定的名称下载文件。

您将在客户端的下载文件夹中获得yourNewFile.txt。但是,不幸的是,它的内容不会是您在服务器上写的内容(new.txt)。

如果您的内容的名称最初不在公用文件夹中,则Meteor会下载其启动html页面作为内容的奇怪行为。我认为这是错误....将上面的锚点放入默认的Meteor项目中,然后单击链接..甚至不创建公用文件夹。您会得到一个下载文件,文件名称是您要求的...

因此,如果将存根放在公用文件夹中(您知道要创建的资产的名称),则可以动态创建它们。

我之前不知道名字。有什么办法让Meteor用我要使用的新名称“更新”其资产列表?

我知道有些软件包可以做到这一点。我想像上面那样自己做,真的不应该那么难。

赛蒙

public/文件夹专门用于静态资产。它的内容由节点http服务器提供。

如果要在服务器上动态生成资产,则可以依赖iron:router服务器端路由。

这是一个简单的例子:

lib/router.js

Router.route("/dynamic-asset/:filename",function(){
  var filename = this.params.filename;
  this.response.setHeader("Content-Disposition",
    "attachment; filename=" + filename);
  this.response.end("Hello World !");
},{
  name: "dynamic-asset",
  where: "server"
});

在服务器端路由控制器中,您可以访问this.response一个标准节点HTTP响应实例,以使用正确的服务器生成的内容响应客户端。例如,您可以使用URL中的最终参数查询Mongo集合。

client/views/download/download.html

<template name="download">
  {{#linkTo route="dynamic-asset" target="_blank" download=""}}
    Download {{filename}}
  {{/linkTo}}
</template>

client/views/parent/parent.html

<template name="parent">
  {{> download filename="new.txt"}}
</template>

linkTo块助手必须在一个范围内,在此路由参数为模板助手访问调用。它将生成一个href设置为的锚标记Router.path(route, dataContext)这意味着,如果我们的服务器端路线网址是/dynamic-asset/:filename,有数据上下文这里filename是可访问的,并设置为"new.txt"将生成此网址:/dynamic-asset/new.txt

在此示例中download{filename: "new.txt"}由于模板调用语法的原因,我们将模板的当前数据上下文设置为

请注意,target="_blank"有必要避免将其重定向到当前选项卡内的动态资产URL,并且download必须设置HTML属性以避免将链接视为浏览器应在新选项卡内打开的内容。download属性值无关紧要,因为它的值将在服务器端被覆盖。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在流星中创建动态资产

来自分类Dev

如何在流星中隐藏动态元素?

来自分类Dev

如何在android中动态获取可绘制资产的名称?

来自分类Dev

如何在框架中以编程方式创建资产?

来自分类Dev

Joomla如何在资产表中创建“规则”值?

来自分类Dev

如何在流星模板中创建全局函数

来自分类Dev

如何在基于流星的网站的js文件中创建类?

来自分类Dev

如何在基于流星的网站的js文件中创建类?

来自分类Dev

如何在D中创建动态库?

来自分类Dev

如何在Jade中动态创建行?

来自分类Dev

如何在GWTP中创建动态表

来自分类Dev

如何在Erlang中动态创建原子?

来自分类Dev

如何在Java中动态创建变量?

来自分类Dev

如何在php中动态创建数组?

来自分类Dev

如何在php中创建动态URL?

来自分类Dev

如何在Python中创建动态列表?

来自分类Dev

如何在jQuery中创建动态表?

来自分类Dev

如何在C ++中动态创建向量

来自分类Dev

如何在TypeScript中创建动态类?

来自分类Dev

如何在MongoDB中创建动态查询?

来自分类Dev

如何在QML中创建动态委托?

来自分类Dev

如何在Jekyll中动态创建链接?

来自分类Dev

如何在axios中创建动态baseURL

来自分类Dev

如何在Java中动态创建JSON?

来自分类Dev

如何在Django中创建动态链接

来自分类Dev

如何在AFrame中动态创建纹理

来自分类Dev

如何在Java中动态创建变量?

来自分类Dev

如何在GWTP中创建动态表

来自分类Dev

如何在Rails中创建动态ID