Some terms for indexing purposes: SharePoint broken images, SharePoint images broken, SharePoint won't load images, SharePoint images won't load, SharePoint not loading images, SharePoint images not loading, SharePoint red X images, SharePoint images red X.
Well, when I ran into this issue I searched like crazy for a solution and came up empty. I don't want that to happen to the next person who runs into the issue so hence this blog post.
Here's the scenario: I did a new installation of SharePoint Server 2007 on Windows Server 2008 R2. Incidentally, this process itself was a major pain in the butt, but I finally got it done--only to find that none of the standard images (those located in C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\IMAGES and mapped in IIS so they load from http://[server]/_layouts/images) would load due to 403 Forbidden errors.
Now, these 403 errors are not immediately obvious--all you see at first is that the images are broken (that is, they won't load: instead you see a "red X" in place of the images). When you dig, you figure out the actual URLs being requested are in http://[server]/_layouts/images and that these requests are resulting in 403 errors.
For purposes of search engine indexing (that is, so others affected can find this post), here's the exact text displayed in the browser when you make a direct request for one of these images:
The website declined to show this webpage
HTTP 403
Most likely causes:
• This website requires you to log in.
What you can try:
Go back to the previous page.
More information
This error (HTTP 403 Forbidden) means that Internet Explorer was able to connect to the website, but it does not have permission to view the webpage.
For more information about HTTP errors, see Help.
As you may know, 403 errors are those that indicate that the requested file is present, you just can't get to it (the displayed message makes that pretty clear). So I knew I was dealing with a permissions issue--I just didn't know precisely what caused that issue. And to be honest, I never really figured it out. But what's important is that I did figure out--okay, stumble upon--a way to solve it: in IIS, for each SharePoint Web Site, there's a Virtual Directory for _layouts and inside of that is an Application for images; I simply deleted and recreated that Application for images and all was well. I had to do this for each SharePoint Web Site and in each case it fixed the problem so I am certain that this is reliably solves the issue.
UPDATE 2010-06-02: I just ran into a similar problem. I came back here to this blog post and followed my own instructions--only to find that it didn't work. The problem this time was that I could get to resources using http://127.0.0.1 but not using http://. Well, technically I could get to resources using http://, I just couldn't authenticate successfully. So how exactly did this cause broken images? Well, even when referencing a page itself as http://127.0.0.1, SharePoint has a penchant for using http:// for image URLs included in the page--and so the page itself would load fine but the images wouldn't because of the authentication issue. The problem turned out to be that I had misspelled "Administrator" as "Adminstrator" so watch out for stupid spelling mistakes causing you to waste lots of time! I don't have any reason to believe this had anything to do with the issue this blog post is about, but since it manifested similar symptoms, I thought it was worth including here.