Custom post type is using the index.php template

public is false by default, your post type will not be visible on the front end without explicitly setting it to true.

$post_args = array(
    'public' => true,
    'label' => _('Blog Post'),
    'description' => _('Site\'s blog posts'),
    'show_ui' => true,
    'show_in_nav_menus' => true,
    'taxonomies' => array('blog_posts'),
    'supports' => array('title', 'editor', 'comments', 'trackbacks', 'thumbnail'),
    'capability_type' => 'post',
    'rewrite' => array('slug' => 'blog', 'has_archive' => 'blog_posts', 'with_front' => false)
);