问题标签 [go-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - 404 页面未找到 - 去渲染 css 文件
我目前在 Go 工作。我在本地机器上创建了一个 Web 服务器。我按照此页面上的说明在Go Web 应用程序中渲染 CSS, 但我仍然收到 404 错误,该程序似乎无法找到我的 css 文件所在的位置。我的目录如下。
src
文件夹中包含,css/somefilename.css
也src
包含server/server.go
。
我的server.go
文件中的代码如下。
当我去时,localhost:8080/css/
找不到 404 页面。我还使用模板来呈现 html 代码。模板在文件夹中
html代码如下:
http - 在 Golang 中使用“模板”包生成动态网页到客户端需要太多时间
使用template
包向客户端生成动态网页时速度非常慢。
测试代码如下,golang 1.4.1
根据日志,我发现它花了大约 3 秒t.Execute(w, nil)
,我不知道为什么它用了这么多时间。我还尝试了Apache服务器进行测试test.html
,它响应非常快。
templates - 有没有办法列出使用的变量?
假设我有一个基本的 go 文本/模板:
我想获取模板中使用的变量名称数组,如果它们在我传递执行的数据中不可用,则能够跳过执行,是否有可能以某种方式做到这一点?
由于我的数据不是结构而是映射,所以 .var 总是会返回一些东西:如果它不存在,它会返回一个空字符串,而我希望在执行模板时会出错。
因此,对于上面的示例,我希望得到:
go - 在 Go 模板范围循环中,循环外声明的变量是否会在每次迭代时重置?
我正在尝试使用在 Go 模板范围循环之外声明的变量来查看上一篇文章是否与当前文章发生在同一天。这是一个简化的例子。
where.Posts
是一个 post 结构数组,每个结构都有 a.Content
和 a .Date
。
问题是它$prevDate
似乎""
在循环的每次迭代开始时被重置。
任何人都可以帮助我理解为什么$prevDate
每次迭代都会重置的值,也许可以提出一种方法来完成我在这里尝试做的事情?
javascript - 在 Javascript 中引用 Go 数组
我有一个 Golang 数组,我在前端传递给我的 html 文件。
我知道
工作并从数组中提取第一个元素。但我想做一个Javascript for循环并像这样打印数组中的每个元素
但这不起作用。关于分离 go 数组索引字符串的东西,HTML/Javascript 不喜欢它,它不会加载。
这是一个我无法确定的语法错误。
有任何想法吗?
templates - 如何使用结构或变量值的字段作为模板名称?
我们可以通过 定义模板名称{{define "home"}}
,然后通过 将其加载到其他(父)模板中{{template "home"}}
。
如何通过变量 value 加载模板{{template .TemplateName}}
。或者这是不可能的?
html - 模板继承加载空页面
我正在使用 Golang+AppEngine 开发一个基本应用程序,并且我正在尝试像 Django 一样实现模板继承,到目前为止,我有以下代码:
我的模板:base.html
索引.html
页面加载,没有错误,但它是空白的,知道我做错了什么
arrays - Escape HTML in array field in struct
How do I escape HTML when I have an array field in a struct?
For a single show page, this code works:
show.go:
For an index page:
index.go
index.html:
How do I escape HTML when I'm ranging over a struct field?
python - 仅模板变量替换。文本/模板是否合适?
我正在寻找一种有效的方法来替换用户提供的文本文件中的一堆占位符/令牌,并将它们的相应值存储在简单的地图或环境变量中。问题是模板文件将由最终用户提供,所以我正在寻找一种“安全”的方法来只进行变量替换,而不会有任何代码执行风险等。
Go 的标准“文本/模板”将适用于替换本身,但会施加特定的格式要求(例如,键之前的点“.”)并通过其函数调用、管道等打开其他可能性。
因此,理想情况下,我正在寻找的是一个可以解析具有可配置分隔符(“{{}}”或“${}”或“$##$”)的文本文件并将所有检测到的标记替换为的函数查找提供的地图或其 env var 值。类似于 Python string.Template
( https://docs.python.org/2.6/library/string.html?highlight=string.template#string.Template ) 所做的。
有没有一种简单的方法可以为此配置或重用文本/模板库?还有其他更适合用例的方法吗?我也研究了非 golang 选项(如envsubtr
,awk
和sed
脚本等),所以如果有更好的选择,请随意离开 Go。
示例输入文件('template.properties'):
样本输入数据:
处理后的预期输出:
go - 在 golang 中处理模板错误的惯用方法
假设我有html/template
以下内容:
有时会SomeFunc
返回错误。有没有一种惯用的方法来处理这个问题?
如果我直接写入ResponseWriter
,则在遇到错误之前已经写入了状态代码 200。
最好我会返回一个状态码 400 或类似的,但如果我template.Execute
直接在ResponseWriter
. 有什么我想念的吗?