Out of the box, portable areas can automatically register routes for common static resources - one for Images, one for Styles and one for Scripts. These are registered through the RegisterDefaultRoutes method in the PortableAreaRegistration class. However, by overriding RegisterArea these won't be automatically registered. You should either call RegisterDefaultRoutes(context) or simply call base.RegisterArea. You can check if these routes have been successfully registered by inspecting RouteTable.Routes at runtime.
These routes will look for embedded resources in the following directories within the portable area assembly and map to the following URLs:
directory /Areas/<AreaName>/Content/Images maps to the URL /<AreaName>/Images
directory /Areas/<AreaName>/Content/Styles maps to URL /<AreaName>/Styles
directory /Areas/<AreaName>/Content/Scripts maps to URL /<AreaName>/Scripts
Now, you can reference the resources from within your view. You don't need to use Url.Resource for this, as these are well-known static routes - Url.Resource is useful for when you have custom embedded resources, but in this case you can just treat JS/images/css as if they were part of your app, eg:
<img src="@Url.Content("~/AreaName/Images/foo.jpg")" />
If you get stuck, I'd suggest looking at the code for the OpenIdPortableArea at
http://openidportablearea.codeplex.com/ - the code for this includes an area with static resources and also a consuming project that illustrates how to consume the area correctly.
Jeremy