Javascript Angular$locationProvider html5Mode/<;基地>;错误

Javascript Angular$locationProvider html5Mode/<;基地>;错误,javascript,angularjs,url-routing,html5-history,base-tag,Javascript,Angularjs,Url Routing,Html5 History,Base Tag,所以我遇到了Angular 1.3.15和$locationProvider的问题。每次打开HTML5模式,我都会得到一个TypeError:cannotreadproperty'replace'(无法读取未定义的属性)error。如果我关闭HTML5模式,一切正常 我的目录结构如下(4.DEV是一个版本化的目录名): 我有一个基本标记集,如下所示: <base href="/4.DEV/"> 如果我将基本标记href更改为“/”Angular,则不会出现任何问题(但我的资源不会加

所以我遇到了Angular 1.3.15和$locationProvider的问题。每次打开HTML5模式,我都会得到一个
TypeError:cannotreadproperty'replace'(无法读取未定义的属性)
error。如果我关闭HTML5模式,一切正常

我的目录结构如下(4.DEV是一个版本化的目录名):

我有一个基本标记集,如下所示:

<base href="/4.DEV/">
如果我将基本标记href更改为
“/”
Angular,则不会出现任何问题(但我的资源不会加载)。我怀疑Angular的问题在于,我的index.html文件比站点的其余部分高出一个目录

由于我不想在这里列出的原因,我无法更改这个dir结构,我真的不想更改base标记(因为我不想手动将版本号粘贴到所有这些文件中)。我还想打开HTML5模式


有人能解决这个问题吗?我有没有办法手动设置Angular的“base href”,但对我所有的静态资产都不使用标记?

因此,Angular的内部工作似乎与标记的href紧密耦合,如果你的目录结构有点像我的目录结构,这将导致重大问题

偶然发现,人们要求一个功能来改变这个,并且@greglockwood发布了一个修复

通过他的修复,标签可以用于您的静态资产,而您可以为Angular的东西提供自己的设置“baseHref”


对我来说工作很有魅力!希望这有助于任何人谁偶然发现这一点

伙计,你帮我节省了很多时间!
<base href="/4.DEV/">
$locationProvider.html5Mode({ enabled: true });