aliased paths for current theme?

I've noticed that items placed in a theme must be referenced using a full path to them, such as: /Themes/HandcraftedRed/Styles/Site.css

Is there any easy way that themes could redefine these absolutes so that more direct paths could be used? such as, the Syles folder be accessible direction as /Styles, and it use the folder accessible under whatever the currently selected theme is?

Actually, it's implemented as a generic virtual directory mapper; so you could virtualise your theme folder directly in its settings; that only just occurred to me and I think I'll be doing that as well...

yes i realized i was trying to reference some theme-level images from a page-level content, so i was just doing things wrong.

however, it would still be nice to be able to hide the full theme path, so it doesnt link to /themes/some-weird-theme-name-i-installed/styles/site.css inside the page etc... seems like it reveals implementation details to the world that don't need to be
there.

You want static files to be served as fast as possible. If you point to their physical location, they can be served by IIS without even going into the ASP.NET pipeline. You could always have a nicer looking route that points to the same resource, but you
are then going to pay for it one way or another. Why is it a problem to show the world the name of your theme? You can always rename that if necessary: "some-weird-theme-name-i-installed" is not a very good name :D

right. yeah Im just looking at the normal user situation where they point and click to install a third party theme, which suddenly introduces a bunch of new/unknown/changed paths into their site from before. Not a biggie for me personally, I can always hack
some url rewiting for my own purposes if I need to.

I just remembered my reason for needing this- Im building a custom Layout.cshtml with my theme, and it makes a few references to images. So, this theme needs to know it's own name, and if the name changes later, it would any paths to the images. There's
not way to use a relative path to theme images in this scenario... make sense?

You can still write out the application base path in your absolute URLs; get it from Url.RequestContext.HttpContext.Request.ToRootUrlString(). That's the only bit that could change from one instance to another.

The module I mentioned by psy (that discussion I linked already) will work fine for your purposes here.

@bertrand There's plenty of reasons why you wouldn't want to show the name of your theme or even the physical path for the images (no reason to get into them). It will always be faster to directly reference the static file or image, but if you're trying
to be super efficient like that than you probably shouldn't use Orchard or any really CMS either.

@boomhauer Check out the module I wrote, it's pretty fast, no performance tests done, but it feels fast (butt-dyno), and will let you reference your images however you want to. I mapped my themed images to something else as well.

I wrote the module to just to remap images, and the URL's for any newly placed media are automatically updated (and some of the old ones), but the route path should work for any physical file. You could do a map like this /Themes/MyAwesomeTheme/Styles/
>>>>> /Styles/ and anything in your siteroot.com/Themes/MyAwesomeTheme/Styles/ folder would be accessible by just using siteroot.com/Styles/

The module could probably be extended easily to handle changing the Style.Include function to return the new mapped URL as well, but you can just easily change it in your layout file to say
<link href="/Styles/Site.css" rel="stylesheet"
type="text/css" /> as well and it will just work.