Sitecore will serve static files directly from disk if they exist, you do not need to patch in an additional <site>
if the hostName
already matches another existing site you might be hosting, i.e. if www-dev.mysite.com is your main site and you just need to put some files into a subfolder then there is nothing more to do, put the files there and request the URL.
If you need a <sites>
definition for some reason, then you can patch it like so:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<sites>
<site name="DEMO"
patch:before="site[@name='website']"
inherits="website"
virtualFolder="/_demo"
physicalFolder="/_demo"
hostName="www-dev.mysite.com" />
</sites>
</sitecore>
</configuration>
Note the use of the virtual folder to match the incoming URL:
virtualFolder: The prefix to match for incoming URL's.
This value will be removed from the URL and the remainder will be treated as the item path.
The Sitecore.Pipelines.HttpRequest.FileResolver
processor in the httpRequestBegin
makes a check for a physical file of the requested URL, and if so allows execution of that file directly. Note that you must request the files directly, using the full URL including the extension of the file. If a directory is requested (i.e. an extensionless URL) then Sitecore also makes a check for the existence of /<directory>/default.aspx
in the folder.
You can read more about this processor here and a little more about overriding that here.