在AngularJs的SPA中,我如何删除“;.html”;来自我的URL
In AngularJs SPA how do I remove the ".html" from my URL
我已经对此进行了一段时间的研究,遇到了一些类似的堆叠式讨论,但没有一个能让我满意地回答这个问题。我不确定angularjs是否有办法做到这一点,但我相信在编写angularjsSPA应用程序时有办法做到。我的情况是这样的,
我正在为现有的基于ASP.NET MVC的应用程序编写AngularJs前端。当前应用程序中的URL看起来像
https://domain.com/login
https://domain.com/profile
https://domain.com/settings
etc
我的新前端版本读取
https://domain.com/index.html/login
https://domain.com/index.html/profile
https://domain.com/index.html/settings
我需要的问题是
我需要从新的url中删除.html。这是我的第一个障碍。以后我需要做的一切都取决于我的URL的读取方式。它需要以ASP.NET MVC提供的格式读取。url中没有.html文件扩展名的url。
当我用谷歌搜索关键词"angularjs url remove html and#!"的建议时
我得到的前两个结果是
如何从网站上基于angularjs 的url中删除index.html
和
从AngularJS urls(#symbol)中删除片段标识符
这些都无助于解决我的处境。
如果没有更好的方法,我正在考虑一种变通方法,那就是
"由于Index.html是我的ng视图所在的地方,而且这个页面基本上驱动了我的SPA架构,所以我可以对我的IIS进行操作,并将Index.html设置为默认文档。"这在一定程度上帮助我实现了我想要的(而不是在URL中显示".html")。例如(在本地工作时),如果我导航到http://localhost
,它将打开index.html,而URL中没有显示文件名,并且只要我不刷新或复制粘贴这些URL(其中没有index.html),angularJs路由仍然可以正常工作,在这种情况下,我会出现404个错误(当我使用$locationProvider.html5Mode(true)删除#s时)。
这肯定不是理想的解决方案,因为当系统向用户发送访问应用程序某些部分所需的URL时,我们总是需要在其中包含index.html(我们不希望)
任何帮助,不胜感激。谢谢
这是服务器端的问题,而不是客户端的问题。您必须这样处理来自服务器端的请求:
handle '/'
return view 'index.html'
然后,当您访问https://domain.com/
时,您将看到index.html
文件,但它在url中不可见。
编辑
如果你使用angular的html5模式,那么你应该做更复杂的路由,比如这样:
handle '/'
handle '/login'
handle '/profile'
handle '/settings'
return view 'index.html'
因为例如您在url上:https://domain.com/profile并且你刷新了页面,请求会发送到这个url,所以你也应该处理'/profile'
路由并返回相同的index.html
页面(然后angularjs会负责路由)
如果您使用的是hash(#),那么当您刷新时https://domain.com/#/profile页面,请求将发送到https://domain.com/并且CCD_ 6路由处理程序将足够
您可以在web.config中编写URL重写规则:
<rewrite>
<rules>
<rule name="Registration" stopProcessing="true">
<match url="^Registration"/>
<action type="Rewrite" url="/registration.html"/>
</rule>
</rules>
</rewrite>
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- Javascript html每点击一次就会更改url
- 在HTML页面上将URL解析为可读的json格式
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- 使用javascript从HTML网页中提取图像url
- 使用JavaScript制作动态HTML页面以重定向到URL
- 处理HTML类型'电子邮件''url'使用JavaScript
- 为什么html src属性中的相对url是因为Javascript函数中的完整路径
- 使url匹配'/''/索引'和'/index.html'到单一状态
- 如何避免在HTML中使用ng repeat对url名称进行硬编码
- 在 HTML URL 中使用数组
- 根据 URL 中的哈希移动 HTML
- 按 URL 的性质控制内容的显示 - MVC/HTML/ASP/JS
- 给定 HTML 文件的 URL 地址,如何读取内容
- 如何在 jQuery 中将 HTML 标记的 HREF URL 替换为不完整的属性
- 修改 HTML 的方式使左键应带到下一个 URL
- 如何在 html 和 javascript 中制作多个 url 打开器
- 通过 JavaScript URL 可变快捷方式扩展 HTML URL
- 创建一个双功能的html Url链接