在子网站/子文件夹上时找不到SVG href ID

时间:2015-02-19 11:49:16

标签: javascript jquery html .htaccess svg

此问题涉及另一个主题: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;:

  1. <textPath xlink:href="#text1">Some Text</textPath> 页面工作,子页面无法正常工作
  2. <textPath xlink:href="http://example.net/#text1">Some Text</textPath> 页面工作,子页面无法正常工作
  3. <textPath xlink:href="http://example.net/text1">Some Text</textPath> 页面无效,子页面无法正常工作
  4. <textPath xlink:href="http://example.net/index.html#text1">Some Text</textPath> 页面无效,子页面无法正常工作
  5. <textPath xlink:href="http://example.net/index.html#text1">Some Text</textPath> 页面无效,子页面无法正常工作
  6. 我还在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但无法从中找到解决方案。

1 个答案:

答案 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文件。