此问题涉及另一个主题:Creating Ajax website with links of multiple subfolders is failing。 还请查看有关该问题的解决方案的讨论。
我对该解决方案的当前问题是,当现在位于像 example.net/about 这样的子网站上时,我的SVG元素使用的所有ID都不再存在。所以我的所有textpathes都位于地图上的0,0坐标上,而不是我给他们的特定路径。此外,SVG图形不再位于正确的位置。但是在 example.net 上,一切仍然正常!
因此,让我们采用以下示例,它只是我的500个元素之一,只是textpath元素。这在abc.net上按预期工作,但在abc.net上没有找到ID:
<path id="text1" d="M1585.621635966945,...some long path..."></path>
<textPath xlink:href="#text1">Some Text</textPath>
这肯定有意义,因为在example.net/about#text1上没有这样的ID。所以我在考虑更改href网址。在下面,我将向您展示我尝试过的内容,以及它是否适用于&#34; 页面(example.net)&#34;或&#34; 子页面(example.net/about)&#34;:
<textPath xlink:href="#text1">Some Text</textPath>
页面工作,子页面无法正常工作<textPath xlink:href="http://example.net/#text1">Some Text</textPath>
页面工作,子页面无法正常工作<textPath xlink:href="http://example.net/text1">Some Text</textPath>
页面无效,子页面无法正常工作<textPath xlink:href="http://example.net/index.html#text1">Some Text</textPath>
页面无效,子页面无法正常工作<textPath xlink:href="http://example.net/index.html#text1">Some Text</textPath>
页面无效,子页面无法正常工作我还在index.html头部设置了<base href="http://example.net">
。
那么如何使用hashbang href方式将textpathes与SVG连接起来。
也是当前的htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php [L,QSA]
我现在想到的一个想法是设置window.location.pathname="/"
,但不幸的是页面现在一直在重新加载。所以即使使用另一个URL,告诉他一个不同的URL并没有真正解决。
此处也有非常有趣的文档:http://www.w3.org/TR/SVG/linking.html但无法从中找到解决方案。
答案 0 :(得分:0)
这个工作正常:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/(?:css|js|maps|pics) [NC]
RewriteRule (/(?:css|js|maps|pics)/.*)$ $1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.html [L]
因此,在htaccess而不是index.html中重写基础是可行的方法。上面的附加重写reule确保在example.net/about/creator上你仍然可以找到正确的css和so文件。