Für Diejenigen, die es interessiert, hier ein paar Details und ein Lösungsansatz dazu. Das Problem scheint schon eine Weile zu existieren und ist bei TYPO3 bugtracker gemeldet, leider bisher ohne Lösung.
http://bugs.typo3.org/view.php?id=5418
http://bugs.typo3.org/view.php?id=4703
Das Problem liegt darin, dass generell bei bestimmten Tags (auch Links mit Sprungmarken) die Funktion prefixResourcePath() aus dem Typo3 Core für das "Prefixen" von hrefs/src/action vom TemplaVoila benutzt wird. Die vom Entwickler empfohlene Behebung des Problems durch config.prefixLocalAnchors = 0 hat leider keine Auswirkung.
Bei der Entwicklung eines Workarounds hat sich bei mir nachfolgende Anpassung im entsprechenden Script durchgesetzt. Die Benutzung ist selbstverständlich auf eigenes Risiko und keine Ahnung, ob eventuell andere Funktionalitäten davon betroffen sind.
Die Idee war nicht nur Sprungmarken von der PrefixPath - Behandlung auszuschließen sondern alle Tags, die gleich in der HTML-Vorlage gesondert gekennzeichnet werden. Ich hab mich dazu entschieden, dies im allgemeinen Universalattribut "class" zu regeln, da dies erstens valide ist, zweitens in allen Tags verfügbar und drittens trotzdem die eigentlichen CSS - Klassen weiterhin benutzt werden können. Alle Tags innerhalb der Vorlage, die von der PrefixPath - Behandlung ausgeschlossen werden sollen, bekommen nun class = "fixedPath" zugewiesen. Weitere oder bestehende Klassen könnten über class = "fixedPath cssKlasse" benutzt werden.
Nun muss noch die entsprechende Klasse vom Typo3 Core angepasst werden. Dazu die Datei "t3lib\class.t3lib_parsehtml.php" öffnen und in der Funktion prefixResourcePath() nachfolgende Anpassung durchführen.
Nach der Zeile
$params = $this->get_tag_attributes($v,1);
diese Zeile einfügen:
if (isset($params[0]['class']) && strstr($params[0]['class'], 'fixedPath') ) continue;
Die ersten Zeilen der Funktion sollten dann so beginnen:
function prefixResourcePath($main_prefix,$content,$alternatives=array(),$suffix=''){
$parts = $this->splitTags('embed,td,table,body,img,input,form,link,script,a',$content);
foreach ($parts as $k => $v){
if ($k%2){
$params = $this->get_tag_attributes($v,1);
if (isset($params[0]['class']) && strstr($params[0]['class'], 'fixedPath') ) continue;
$tagEnd = substr($v,-2)=='/>' ? ' />' : '>';
.....
}
Damit wird der aktuelle Schleifendurchlauf bei den mit class = "fixedPath" gekennzeichneten Tags übersprungen und so die PrefixPath - Behandlung für diese Tags ausgehebelt.
Nach den Anpassungen zur Sicherheit das aktuelle Mapping noch mal Speichern, die Cache's leeren und das Ganze sollte funzen. Viel Spaß damit und schönes Wochenende!