好的,我有这个下划线模板(简化版),_template.html.erb
在我的 Rails 应用程序中的页面某处呈现:
<script type="text/html" id="mytemplate">
<div class="foo">
<img src="{{= my_variable }}" />
</div>
</script>
然后我在需要时在其他地方渲染它:
// change it to mustache-style because of defaults clashing with erb
_.templateSettings = {
interpolate: /\{\{\=(.+?)\}\}/g,
evaluate: /\{\{(.+?)\}\}/g
};
options = {
my_variable: '/foo/bar/baz.img'
}
compiled = _.template($("#mytemplate").html());
$(compiled(options)).appendTo("#wherever");
从理论上讲,这应该可以正常工作,并且确实可以,除了像这样的错误开始在服务器日志和其他地方弹出,浏览器在 URL 上出现 404 错误,例如:http://example.com/{{=%20my_variable%20}}
或http://example.com/foo/{{=%20my_variable%20}}
.
现在,我的预感是它与它是一个标签这一事实有关,img
并且浏览器以某种方式尝试GET
从页面访问它,即使它被包装在script
标签中,但我不知道到底为什么。这是许多人推荐的将下划线模板嵌入 HTML 的方法之一。而且我也不能将其归因于较旧的浏览器和/或机器人,因为服务器日志显示这些是使用最新 Chrome 等的真实用户。
编辑:经过多一点调查,1. 它只发生在少数人(独特的 IP) 2. 他们都使用最新版本的 Chrome。所以也许这是一个失控的扩展?
有任何想法吗?