当前位置: 首页 > 面试题库 >

如何配置IIS以在HTML5模式下用URL重写AngularJS应用程序?

勾炳
2023-03-14
问题内容

我有AngularJS种子项目,并添加了

$locationProvider.html5Mode(true).hashPrefix('!');

到app.js文件。我想将IIS 7配置为将所有请求路由到

http://localhost/app/index.html

这样对我有用。我该怎么做呢?

更新:

我刚刚发现,下载并安装了IIS URL Rewrite模块,希望这将使实现我的目标变得容易且显而易见。

更新2

我想这总结了我要实现的目标(摘自AngularJS
Developer文档
):

使用此模式需要在服务器端重写URL,基本上,您必须重写指向应用程序入口点的所有链接(例如index.html)

更新3:

我仍在努力,我意识到我不需要重定向(具有重写规则的)某些URL,例如

http://localhost/app/lib/angular/angular.js
http://localhost/app/partials/partial1.html

因此,css,js,lib或partials目录中的所有内容都不会重定向。其他所有内容都需要重定向到app / index.html

任何人都知道如何轻松实现此目标而不必为每个文件添加规则?

更新4:

我在IIS URL重写模块中定义了2个入站规则。第一条规则是:

IIS URL重写入站规则1

第二条规则是:

IIS URL重写入站规则2

现在,当我导航到localhost / app /
view1时,它会加载页面,但是支持文件(css,js,lib和partials目录中的文件)也将被重写到app /
index.html页面中,因此一切都来了无论使用什么URL,都返回index.html页面。我想这意味着我的第一个规则(该规则应防止第二个规则处理这些URL)不起作用。…任何人?…我感觉很孤独…
:-(


问题答案:

如问题DO中所示,IIS入站规则有效。我必须清除浏览器缓存,并<head>在index.html页面的本节顶部添加以下行:

<base href="/myApplication/app/" />

这是因为我在本地主机中有多个应用程序,因此对其他部分的请求被localhost/app/view1代替localhost/myApplication/app/view1

希望这可以帮助某人!



 类似资料:
  • 本文向大家介绍详解IIS中URL重写工具的匹配URL-规则模式(rule patterns),包括了详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)的使用技巧和注意事项,需要的朋友参考一下 rule patterns规则模式在IIS的URL重写模块中,是较为关键的设置。只有规则模式的URL匹配成功时,其他的规则才能起到作用。规则模式的匹配URL设置主要是匹配URL中的

  • 问题内容: 是否有任何模式或最佳实践可用于简化跨多个环境的Java Web应用程序的配置文件更改。例如JDBC URL,SOAP端点等。 为了帮助澄清我的问题,我使用了一些大型Java Web应用程序作为背景知识,这些Web应用程序在任何给定的发行周期内都会在6种不同的环境中移动。开发,集成,质量保证,性能,并最终部署到多个生产服务器。在每种环境中,配置都需要更改。目前,每个部署的大多数配置更改都

  • 最近在配置Dokuwiki,碰到url重写的问题,经过研究,过程记录如下: 默认情况下,DokuWiki不做任何的URL重写,它的原始URL是这样的: http://wiki.yes2.me/doku.php?id=page 这样默认的URL不利于有些搜索引擎不收录,而且也不易于记忆 通过设置DokuWiki的配置设置里面的高级设置的userwrite配置选项它可以支持两种URL重写方法: 一个是

  • 此外,我已经用以下参数配置了HBase集群: 它不起作用。 1。HMaster启动 2。我将“http://nn1:16010”放入浏览器 3。HMaster消失 以下是我的日志/hbase-hadoop-master-nn1.log: http://paste.openstack.org/show/549232/

  • 我正在尝试使用我自己的应用程序实现或扩展的ResourceConfig或PackageResourceConfig来配置我的Jersey应用程序。因此,我的第一次尝试是将现有的web.xml(实际上,由于开发的库性质,我使用的是web-fragment.xml)配置移植到MyApplication实现。 当我使用第二个版本时,我会收到以下信息 正如您所看到的,是第一个注册的类,但由于它不是公共的,

  • 我用Spring Boot启动我的Web应用程序。它使用一个简单的主类来启动嵌入式tomcat服务器: 我想配置服务器的方式,他可以处理angularjs HTML5模式,将激活与 其他用户的相关帖子显示,您需要重定向到根目录。html5模式从url中删除hashbag。如果你刷新页面,服务器找不到页面,因为他没有处理散列。请参阅:AngularJS-为什么更改url地址时$routeProvid