ui-router html5mode不使用带有params的扩展url或url

时间:2016-01-26 19:25:43

标签: angularjs html5 angular-ui-router

首先,我遇到了这个问题link,经过一些阅读和一些测试后,我发现在使用ui-router启用html5模式刷新页面时,网址出现问题。< / p>

问题

当我使用扩展网址时会出现问题,例如/app/Welcome。起初,我认为这是因为嵌套状态,因为当我有一个子状态时我只使用这种类型的url。但是当我尝试访问带参数的url时,问题也发生了。这些是我到目前为止测试过的网址:

url:'服务/工具' url:'/ Service / Tools' url:'/ Service /:myParam' url:'/ Service / Tools /:myParam'

对于所有这些网址,当我刷新页面时会出现以下错误:

  

未捕获的SyntaxError:意外的标记&lt;

     

未捕获的ReferenceError:未定义角度

     

资源解释为样式表,但使用MIME类型text / html传输:

我能够使用启用html5mode刷新页面的唯一方法是使用这样的网址:url:'/Service'

如果它是单个状态,嵌套状态,抽象等,则无关紧要。如果网址超过1 /,则错误发生。

服务器

我在这个重写规则的apache服务器上运行它:

<IfModule mod_rewrite.c> 
    RewriteEngine On RewriteBase / 
    Options FollowSymLinks
    RewriteRule ^index\.html$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.html [L] 
</IfModule>

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您似乎需要为您的外部资源提供绝对网址。

将一个前导/添加到reasource标记href或src。这将告诉浏览器在发出请求时从站点根目录开始