【问题标题】:Reloading page Angular html5mode with base as subdirectory以 base 作为子目录重新加载页面 Angular html5mode
【发布时间】:2016-01-28 08:18:00
【问题描述】:

我想知道我做错了什么或者我错过了什么。我正在尝试将 html5mode 与我的基本 href 作为子目录一起使用。如果我离开该基地并重新加载,页面会尝试跳回到子目录之前。

如果这没有任何意义,让我告诉你我是如何配置的......

在我的 app.js 文件中我设置了:

$locationProvider.html5Mode(true)

在我的 index.html 文件中,在我设置的标签中:

<base href="/subdirectory/">

因此,如果我导航到 http://url.com/subdirectory 一切都很好。

如果我点击链接访问http://url.com/subdirectory/subpage,一切都很好。

但是,如果我重新加载子页面,或者,如果我尝试直接导航到该子页面,它将不会呈现。事实上,我相信浏览器认为它试图从http://url.com 开始而不是从http://url.com/subdirectory/ 开始

遇到过类似问题的人可以解释一下解决方案吗?

我一直在用头撞墙。我真的很感激。谢谢!

【问题讨论】:

  • 听起来你没有正确配置服务器
  • @charlietfl 如果我说我在服务器配置方面有点初学者,请原谅我。我查找了一些关于 .htaccess 文件的信息,但我对它并不轻松。而不是仅仅评论我没有正确地做某事,(因为这可能很明显,)你认为你可以提供一个解决方案和/或指出我正确的方向吗?谢谢。
  • 无法提出建议,因为不同类型的服务器使用不同的配置系统。此外,我们不知道您在服务器上还有什么。如果您设置html5Mode,Angular 将使用服务器视为虚拟目录的内容。如果你不设置它将使用哈希并且对服务器没有影响
  • 应该能够对此进行研究并尝试设置 htaccess 以在请求的目录不存在时为 Angular 应用程序入口点提供服务

标签: angularjs reload subdirectory


【解决方案1】:

您必须将服务器配置为将所有对http://url.com/subdirectory/subpage 的请求重定向到http://url.com/subdirectory/ 指向的同一位置。

【讨论】:

  • 你能指导我如何做到这一点吗?在服务器配置方面,我是初学者。谢谢!
  • 您使用的是什么服务器?阿帕奇?
【解决方案2】:

所以这就是解决方案。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(.*) /subdirectory/index.html [NC,L]
</IfModule>

【讨论】:

    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2021-09-08
    • 2018-08-02
    • 1970-01-01
    • 2016-04-21
    • 2023-04-11
    相关资源
    最近更新 更多