Localhost: Why does {{ asset.url }} return {{siteUrl}}/path in the browser? I'm very new at Craft templating, and I can't seem to get an asset to link correctly in the browser.

{% block content %}
    &lt;article&gt;
        &lt;h1&gt;{{ entry.title }}&lt;/h1&gt;
        {{ siteUrl }}
        &lt;p&gt;Posted on {{ entry.postDate.format('F d, Y') }}&lt;/p&gt;
        {{ entry.blog_body }}
        {% for asset in entry.blog_featured_image %}
            &lt;img src="{{asset.url}}" alt="{{asset.title}}" /&gt;
        {% endfor %}
    &lt;/article&gt;
{% endblock %}


Becomes this:

&lt;article&gt;
  &lt;h1&gt;New Blog 1&lt;/h1&gt;
  http://localhost/craftcms/public/
  &lt;p&gt;Posted on January 15, 2017&lt;/p&gt;
  &lt;p&gt;"Body Text"&lt;/p&gt;
  &lt;img src="{{ siteUrl }}assets/images/image.png" alt="title"&gt;
&lt;/article&gt;


when output to a browser.

{{ siteUrl }} will display the path just fine, but when I'm using {{asset.url}} and it gets changed to {{siteUrl}} it doesn't create the path, it just stays at siteUrl. This is really confusing me.

Why doesn't {{ siteUrl }} return the base path when it's used in the asset.url?
What field type is blog_featured_image? Just an image asset?
Does it work with

&lt;img src="{{ asset.getUrl() }}" alt="{{asset.title}}" /&gt; ?