再次内联CSS url()函数请求页面URL

时间:2016-04-20 09:41:42

标签: html css angularjs

如果在没有任何参数的情况下调用CSS中的url()函数,它是否会向页面的URL发送请求?

我正在构建一个有角度的应用程序,我在我的部分中有以下相当天真的代码:

<div style="background-image: url({{scope.image_url}});">
  {{scope.message_text}}
</div>

当应用程序加载时,我注意到我的页面的URL被调用,导致我的服务器端处理程序错误地触发了一些分析事件。

根据我的观察,我在Chrome&amp; Firefox浏览器。但是,当没有传递参数时,我无法找到任何说明url()函数行为的文档。

如果这是正确的行为或我遗失了什么,请告诉我。

2 个答案:

答案 0 :(得分:1)

by W3所述,url()函数需要一个字符串作为参数。在您的情况下,$scope.image_url已解析为空字符串,这是合法的Relative URL,因此浏览器会尝试将其解析为完整的网址,在您的情况下为base_url + ''

您可以通过更改$scope.image_url = '1'来验证,然后您可以看到http://yourdomain/1的一个请求。

为了防止这种情况,我建议您创建一个fallback指令,以便在没有此记录的图像时显示默认图像,有关详细信息,请参阅this stackoverflow answer

答案 1 :(得分:0)

我认为他将您的空绑定解析为url(undefined) ..所以他会尝试解析网址http://<domain>/path/to/your/page/undefined

您是否在页面加载时初始化scope.image_url

为了防止这种情况,我建议绑定整个样式属性,而不仅仅是url() ...如果没有&#34;空&#34; url(),我认为它不会加载随机请求...或者如果背景只是静态的,请使用CSS类而不是style属性...