Detailed answer
Check rel, resolved href, response status, and the stylesheet MIME type.
Then confirm selectors match the DOM and inspect competing rules. A resource-path error and a cascade issue require different fixes. Verify the actual response rather than changing random selectors when the server may be returning HTML.
Example
<link rel="stylesheet" href="/styles/site.css">
Understanding the behavior
A stylesheet link must resolve to an accessible CSS resource with an appropriate response type. A successful download still may not affect the page if selectors do not match, a media condition excludes it or another rule wins the cascade.
Practical implementation notes
Inspect the network request first, then the element's matched and computed styles. Disable caching during investigation when necessary, but do not assume cache is the cause before checking the resolved path and response.
How to check it
Open the response body and Content-Type, then inspect selector matching only after the file is valid.
Expected result
The stylesheet response contains CSS rather than a fallback HTML page.
Watch out: A 200 response containing an HTML error page is not a stylesheet.
Read the reference ↗