That would be because get_stylesheet_directory_uri
only returns a value. If you want to echo it to to the screen you have to include echo or print.
<img src="https://wordpress.stackexchange.com/questions/35384/<?php echo get_stylesheet_directory_uri(); ?>/images/logo.jpg" />
bloginfo
works fine as well, but when you do stylesheet_directory
it’s just a wrapper for get_stylesheet_directory_uri
<?php
function get_bloginfo( $show = '', $filter="raw" ) {
switch( $show ) {
// snip snip
case 'stylesheet_directory':
$output = get_stylesheet_directory_uri();
break;
// snip snip
}
$url = true;
if (strpos($show, 'url') === false &&
strpos($show, 'directory') === false &&
strpos($show, 'home') === false)
$url = false;
if ( 'display' == $filter ) {
if ( $url )
$output = apply_filters('bloginfo_url', $output, $show);
else
$output = apply_filters('bloginfo', $output, $show);
}
return $output;
}