Free tools Windows power users keep installed
One-click scans. No signup required.
If an HTML image is missing, fix the URL in src so it points to the file from the page’s base URL. Start by checking the exact filename and extension, then use the correct same-folder, child-folder, parent-folder, or site-root form. If it still fails, inspect the image request in your browser’s developer tools: the requested URL usually reveals the typo, wrong directory depth, unexpected <base> element, deployment mismatch, or a problem with the image itself.
Fast fix: match the path to the file’s location
Suppose your page contains this element:
<img src="photo.jpg" alt="Description of the photo">
That works only when photo.jpg is in the location represented by the document’s base URL. Use this sequence:
- Find the image and record its exact name, capitalization, and extension.
- Open the HTML file containing the
<img>element. - Write the path from that document’s base directory to the image, using forward slashes.
- Reload the page and inspect the failed image request if it is still missing.
For example, if index.html and photo.jpg are beside each other:
<img src="photo.jpg" alt="Description of the photo">
If the image is in an images folder beside index.html:
Recommended Free Tools
#1 Best Overall
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
<img src="images/photo.jpg" alt="Description of the photo">
If the HTML file is one directory below the image:
<img src="../photo.jpg" alt="Description of the photo">
../ moves up one directory. A directory name moves down into a child directory. In HTML, use / separators even when you created the files on Windows; do not paste a Windows filesystem path such as C:imagesphoto.jpg into src.
Why a path that looks right can still fail
The value of src is a URL, not a promise about where a file appears in your editor’s project tree. A relative URL is resolved against the document’s base URL. Normally that base comes from the page URL, but a <base href="..."> element can change it for every relative URL in the document. See MDN’s explanation of the document base URL and relative URL resolution.
For example, on https://example.com/articles/index.html, images/photo.jpg resolves to https://example.com/articles/images/photo.jpg. If the page instead contains <base href="https://example.com/">, the same src resolves to https://example.com/images/photo.jpg.
Rank #2
A leading slash has a different meaning:
<img src="/images/photo.jpg" alt="Description of the photo">
This starts at the web server’s root, not at the directory containing the HTML file. On a site published under a subpath such as https://example.com/blog/, a root-relative URL points to https://example.com/images/photo.jpg, not https://example.com/blog/images/photo.jpg.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsChoose the correct path form
| Where the image is served relative to the page | src value |
What it means |
|---|---|---|
| Same directory | photo.jpg |
Look beside the HTML document’s base directory. |
Child directory named images |
images/photo.jpg |
Enter images, then request the file. |
| Parent directory | ../photo.jpg |
Move up one directory, then request the file. |
| Two levels above | ../../photo.jpg |
Move up twice before requesting the file. |
| Server root | /images/photo.jpg |
Start at the host’s root URL. |
| Another host or fully specified location | https://cdn.example.com/photo.jpg |
Request an absolute URL; use only a source you are authorized to use. |
MDN’s file-path guide illustrates these relative forms and the required forward slashes. For images on a real site, hosting the asset yourself or using a controlled delivery setup avoids depending on another site’s availability; MDN also cautions against hotlinking an image without permission in its HTML images guide.
Check the exact filename before changing code
- Compare every character in the folder names and filename.
- Check capitalization:
Photo.jpg,photo.jpg, andphoto.JPGare different names on many hosts. - Confirm the extension matches the actual file. Renaming a file in an editor does not convert its format.
- Remove accidental spaces or punctuation from the path, or encode characters when a URL genuinely requires them.
- Make sure
srcis not empty and that the element is not relying on an unrelated placeholder or misspelled attribute.
The <img> reference documents src, alt, and image-loading errors. A correct-looking URL can still fail when the file is missing, corrupted, or in a format the browser cannot render.
Rank #3
Use developer tools to see the URL the browser requested
- Open the page, then open your browser’s developer tools.
- In Network, reload the page and filter for the image filename or the image category.
- Select the failed request and read its full Request URL. Compare that URL with the location where the image is actually served.
- Check the status and response. A request for the wrong folder or filename identifies a path problem; a request that reaches the expected URL points toward the resource, server response, or format.
- Look in the Console for related loading errors. Correct the path or move the asset to the location represented by the request, then reload.
This method is more reliable than guessing from the editor’s folder tree because it shows the URL generated after base-URL resolution. MDN includes path-spelling and developer-tool checks in its site troubleshooting guidance.
Account for <base href>
Search the document’s <head> for a <base> element:
<base href="https://example.com/app/">
With that element present, a relative image such as images/photo.jpg is resolved from https://example.com/app/, regardless of where the source file appears in your local project. If the base is unintended, remove it or correct its value. If it is intentional, rewrite relative image paths to match it. Only one base URL is used for resolving document-relative URLs, so an unexpected base can make many links and assets fail at once.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Development and deployed pages can resolve differently
A path may work while opening a local file and fail after publishing because the page’s URL changed. Test the page through the same kind of server URL used in deployment, then compare the network request with the deployed directory structure. Do not assume that a folder arrangement on your computer is the URL arrangement on the host.
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
- If the deployed page is in a nested route, verify how many directories the relative path must traverse.
- If the site is installed under a subpath, be cautious with a leading slash because it targets the host root.
- Check that the image was included in the deployed files and that its name’s capitalization is unchanged.
- If a build or publishing step moves assets, use the URL visible in the deployed page’s request rather than the pre-build source path.
Keep useful alternative text
Write meaningful alt text for informative images:
<img src="images/team.jpg" alt="The support team in the Brighton office">
The alternative is available to people who cannot see the image and can appear when the image fails. For a purely decorative image, an empty alt="" communicates that it carries no information; do not omit the attribute. MDN covers alternative text in its content-creation tutorial and HTML images guide.
Minimal working examples
Same-folder image
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Image test</title>
</head>
<body>
<img src="photo.jpg" alt="A mountain at sunrise">
</body>
</html>
Image in a child folder
<img src="images/photo.jpg" alt="A mountain at sunrise">
Image one level above the page
<img src="../photo.jpg" alt="A mountain at sunrise">
Test each example with a real server URL and verify the resulting request, not only the source text.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Or skip the browser setup
If your goal is to obtain a clean screenshot of a page while you diagnose or document it, ScreenshotNeo accepts a URL and returns a PNG, JPEG, WebP, or PDF. Its capture process accepts cookie or consent banners like a visitor, then removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and each response reports the result in X-Page-Verdict and X-Billed headers.
One GET request is enough (see the ScreenshotNeo API documentation):
Best Value
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://freedom251.com -o shot.webp
Python
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://freedom251.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://freedom251.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo also provides an MCP server for AI agents such as Claude and Cursor, with take_screenshot, get_page_info, and capture_pdf tools. Its 63 options include full-page capture with lazy images loaded, CSS-selector element capture, dark mode, device presets and custom viewports, retina scale, PDF paper and margin controls, custom CSS and JavaScript, click-before-capture, selector hiding, selector or delay or network-idle waits, request and resource blocking, custom headers, cookies, user agents and authorization, timezone and geolocation, transparent backgrounds, resizing, configurable-TTL caching, signed public image links, asynchronous jobs with signed webhooks, bulk capture for up to 100 URLs per call, a usage API, an OpenAPI specification, and compatibility with parameter names used by other screenshot APIs.
The Free plan includes 1,000 screenshots per month with no card. Paid plans are Starter $5 for 3,000, Growth $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000, and Business $249 for 1,000,000; yearly billing gives two months free, and every feature is on every plan. Create a free ScreenshotNeo account to use the 1,000 monthly shots without a card.
Decision checklist
- Nothing appears in Network: confirm the element has a nonempty
src(or an intentionalsrcset) and that the page was reloaded. - The request URL has the wrong folder: fix the relative path, count
../levels, or correct the<base href>. - The request URL is correct but the file is absent: put the asset at that served location and ensure it was deployed.
- The request reaches the file but rendering fails: verify the file is not corrupted and uses a browser-supported image format.
- It works locally but not online: inspect the deployed URL, root-path behavior, capitalization, and publishing output.
- The image loads but communicates poorly when hidden: improve its
alttext.
Once the browser’s requested URL exactly matches a reachable, valid image resource, the broken-image problem is resolved.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallQuick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

