Not understanding quite what you are doing I will limit myself to the different notations you have here. Cutting off the* file://* protocol defining part of the URL we are left with:
/home/me/Theme/...
This is an straight file name with the full path.
$HOME/Theme/...
When one is normaly loged in (as *me in our example) the shell will expand $HOME *with /home/me and thus we arive at the same file name.
~/Theme/...
This is the Tilse Substitution of the shell (read the paragraph in man bash). In this case it repaces the ~ with the value of the *HOME *variable. So this is the same case as the second one above.
I repeat: the last two only fuction correct when used in a loged in environment where *HOME *has a value…
The first one is of course only to be used inside the realm (inside the home directory) of user *me *because when somewhere inside general system directories like */etc *every user would get the name of the file of user *me *in whatever is to be done with it.