By default when a request for a file (in this case Image.jpg) comes, IIS will directly serve it from the location. It will not go through the MVC request pipeline. So there is nothing much you can do in the code configuration to change the path/url.
You have 2 options
Move the static content to the app root, where you can organize it in a folder which is matching to the area name (or whatever name you like) and refer that in the views from those areas.
Render the images via code. In this approach, you can write an action method which accepts a unique identifier for the file (Ex: unique file name/id) and read the file using code and return a FileResult. Since you are writing code to read file, you can read it anywhere from the application. You can use attribute routing to definie pretty (nice looking) url pattern for this action method.
Here is a simple example to return image from the folders. Please feel free to improve it as needed and use it.
[System.Web.Mvc.Route("Images/{id}/")]
[System.Web.Mvc.Route("Images/{area}/{id}")]
public ActionResult GetImage(string id,string area = "")
{
var webRoot = Path.Combine(Path.Combine("~/Contents/Img/", area), id) + ".png";
return File(webRoot, "image/png");
}
Assuming you have an image called logo.png in ~/Contents/Img directory (for non area related pages) and another one specific to your Billing area in ~/Contents/Img/Billing, You can request them like
yourSiteName/Images/billing/logo
yourSiteName/Images/logo
I would go for option 1 as i would not want the requests for images to go via the MVC request pipeline (unless i want to do some fancy thing for the response like resizing based on the request etc). Also you get the IIS level caching as well. But hey, pick the one suitable for your use case.