问题标签 [html5mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2128 浏览

angularjs - TypeError:无法读取未定义的属性“替换”

概述 :

我想将访问者重定向到目录结构内的默认页面(index.html)上,以便在使用.htaccess文件访问目录时显示(目前正在加载当前目录 index.html)。

但是当我$locationProvider.html5Mode(true)在我的角度应用程序中打开时,会出现以下错误。

控制台错误:

在此处输入图像描述

应用程序的目录结构:

public_html => .htaccess :

这用于通过使用域名直接.htaccess重定向应用程序页面 () 上的访问者,截至目前,当用户访问当前目录 ( ) index.html 正在加载的域时。prod/public/index.htmlpublic_html

public_html => 产品 => .htaccess :

产品 => 公共 => index.html :

一切正常如果我$locationProvider.html5Mode(true)从文件中删除。app.config.js所以,当我注释掉$locationProvider代码时,一切正常#/#/abc我可以毫无问题地到达等。一旦我把$locationProvider零件放回去,什么都没有发生。

Stack Overflow 上的相关问题没有成功:

$locationProvider.html5Mode(true) 问题

Angular html5 模式在 apache 中不起作用

0 投票
1 回答
629 浏览

angularjs - 用于开发环境的 .htaccess RewriteBase 无法正常工作

这是我的 .htaccess 文件

在我的 html 页面中,我有这个

我期待服务器请求http://localhost/myapp_dev/public/libs/angular/angular.js

但它正在请求这个无论如何都不存在的 url。

.htaccess 代码中的任何问题?

0 投票
1 回答
227 浏览

angularjs - Angular 1 UI-Router - HTML5 模式参数 URL 始终以正斜杠结尾

我有一个基本 URL 为 /foo/ 的页面,并设置了我的状态以期望一个参数。

所以,如果用户点击 /foo/user1/,user1就是参数。

是否可以同时查看这两种类型的网址?例如,我可以将 /foo/user1/ 和 /foo/user1(注意,没有正斜杠)声明为相同的状态,还是需要创建另一个状态来专门监视尾部斜杠?

目前,它可以是其中之一,但不能两者兼而有之。这是一个准确的陈述,还是我在文档中遗漏了什么?

0 投票
2 回答
5588 浏览

angularjs - .htaccess 用于具有 HTML5 模式的 AngularJS 应用程序的子文件夹

概述 :

我有一个使用的 AngularJS 应用程序,$locationProvider.html5Mode(true)它是从 Apache 服务器提供的。到目前为止,我使用的是可以从其他人那里访问的源代码,并且我只需要重定向到 index.html 来实现 angularJS 的 HTML5 模式。所以我有这个作为.htaccess/app文件夹的文件。

.htaccess:

修改:

然后我添加了 Grunt 来缩小/dist在应用程序文件夹中生成的整个解决方案(所以现在缩小的解决方案位于 /app/dist)。我现在想将我的应用程序的全部流量路由到缩小版本,而不让用户更改链接。因此,在实践中,我想将每个呼叫从 /app 重定向到 /app/dist。

现在的目录结构:

我尝试在 /app 的 .htaccess 中使用此处的一些条件,并将另一个 .htaccess 文件移动到 /app/dist 中,但没有成功。我什至不知道两者是否可以通过这种方式结合起来。我知道我可以将 dist 文件夹用作 /app ,但我真的不想要这个,因为 /app 是一个存储库,并且更容易保持更新。那么我怎样才能通过重定向来实现这一点呢?

另外,作为第二件事,是否可以以某种方式放置一个标志,以便让 alpha 用户使用普通(未缩小)版本进行更好的调试?

更新:

我在这里添加了一个示例项目。我只保留了上面显示的初始 .htaccess 文件,您可以检查两个版本(/test/test/dist)是否按上述方式工作。此外,它可能有一些未使用的代码和依赖项,但我只是从我的项目中删除了其他部分(不要判断:D)。

为此,我使用了 AngularJS 1.4.8 的初始配置,它可能会产生一些错误,例如此处此处所述的错误。随意将 AngularJS 版本更新到 1.5.8(Angular 1 的最后一个稳定版本),但也要考虑Cosmin Ababei 帖子上的评论。此外,该项目使用 npm 安装 grunt(以及 grunt 的其他扩展),使用 bower 安装 angular 和一些其他基本组件,并使用 grunt 构建缩小版本(实际上,它现在只是在相同文件中连接资源)。如果您需要更改依赖项,请不要忘记运行bower install. 如果要重新生成 dist 文件夹,不要忘记运行npm installand grunt build.

0 投票
1 回答
325 浏览

angularjs - 在角度 JS 中使用 html5Mode(true) 时如何优先考虑角度路由而不是节点路由

我想根据html5mode(true). 这是我的角度代码片段。

索引.html

应用程序.js

app.routes.js

用户控制器.js

但是当我在浏览器中点击 url 即http://0.0.0.0:3000时,它会将 url 重定向到http://0.0.0.0:3000/user这是正确的但是当我尝试重新加载时它告诉我Cannot GET /user我猜测是来自节点服务器的响应。如何配置我的应用程序以便浏览器使用http://0.0.0.0:3000http://0.0.0.0:3000/user

更新:NodeJS 服务器代码。

0 投票
0 回答
233 浏览

angularjs - Angular 单元测试:HTML5 模式下的 $location 需要存在标签

我正在使用 Karma 编写测试脚本,这是我的 karma.conf.js 代码

据我记得它在一段时间内工作正常,由于一些变化,我突然收到这个错误,我无法弄清楚可能是什么问题。

我在索引文件中定义了基本 url,但在运行测试脚本时仍然出现此错误

0 投票
1 回答
633 浏览

javascript - AngularJS html5mode URL 不起作用

我有一个简单的 AngularJS 应用程序,其中没有与 nodeJS 相关的代码。我在从 url 中删除 # 时遇到问题。我使用 ui-routes 进行路由。

还将基本标记添加到我的 index.html 的头部。

也试过不需要基地,但仍然无法让它工作。

添加基本​​标记会显示我在 index.html 文件中包含的所有资产的 404。

需要一个快速简单的解决方案。

先感谢您!

0 投票
0 回答
442 浏览

angularjs - 带有角度 html5mode 的错误 404

我尝试使用 ui-router 创建简单的 Angular 网页,以便在 HTML5Mode 上进行路由。我使用 Visual Studio 和 IIS 表达式作为服务器

索引.html

应用程序.js

页面 index.html 有标签

该网址工作正常,但当我刷新页面时,我收到错误 404.0 - 未找到。你有什么想法,这是什么原因?

0 投票
0 回答
96 浏览

angularjs - AngularJS HTML5 模式路由与 apache2 .htaccess

我正在 Ubuntu 系统上使用 PHP、MySQL、apache2 构建 angularjs 项目

项目结构 var/www/html/demo/

Demo文件夹是我的项目文件夹, demo=>js(All js file), index.php, addstudent.php file etc

我在刷新整个页面并在 AngularJS 中使用带有 html5Mode(true) 的路由概念时遇到问题,但它不能与 .htaccess 文件一起正常工作。

在此服务器上找不到请求的 URL /demo/addstudent。

htacces 代码在这里

DirectoryIndex 演示/index.php

在 index.php 中添加的基本参考是

0 投票
2 回答
4613 浏览

angularjs - Angularjs的Nginx重写规则以删除动态路由中url中的#hash

我做了以下事情:

AngularJS 应用程序

在 app.js 中:

$locationProvider.html5Mode(true);

在 index.html 中:

<base href="/">

nginx配置

location / { try_files $uri /index.html; }

部署后,静态页面一切正常(# 井号被移除)。我可以直接进入http://fakeurl/abouthttp://fakeurl/download页面;如果我刷新浏览器,页面仍然会加载。

但是,当我直接进入动态页面时:

http://fakeurl/cars/:car_id

然后nginx会服务404。

如果我使用# 路径,那么它会重定向到没有# 符号的路径并显示页面;但是当我再次刷新页面时,它显示 404。(这只发生在动态路由上)

http://fakeurl/#/cars/:car_id

http://fakeurl/#/shops/:shop_id

我需要在 nginx 块中编写哪些重写规则来为我的动态路由提供服务?谢谢!