TypeError : Cannot read property 'replace' of undefined
TypeError : Cannot read property 'replace' of undefined
概览:
我想在目录结构内的默认页面 (index.html) 上重定向访问者,以便在使用 .htaccess
文件访问目录时显示(截至当前目录 index.html 正在加载)。
但是当我在 angular 应用程序中打开 $locationProvider.html5Mode(true)
时出现以下错误。
控制台错误:
应用程序的目录结构:
public_html
--prod
--public
--app
--controllers
--directives
--services
--app.config.js
--index.html
--.htaccess
.htaccess
public_html =>
.htaccess :
DirectoryIndex prod/public/index.html
此.htaccess
用于直接通过域名重定向应用程序页面(prod/public/index.html
)的访问者,截至目前,当用户访问该域时,当前目录(public_html
) index.html 正在加载。
public_html =>
产品 =>
.htaccess :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /prod/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /prod/public/#/
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/prod/ [L,R=301]
</IfModule>
产品 =>
public =>
index.html :
<base href="/prod/public/">
一切正常 如果我从 app.config.js
file.So 中删除 $locationProvider.html5Mode(true)
,当我注释掉 $locationProvider
代码时,#
中的一切正常模式。我可以毫无问题地到达 /#/abc
,等等。一旦我将 $locationProvider
部件放回原处,就什么也没有发生。
Stack Overflow 上的相关问题没有成功:
$locationProvider.html5Mode(true) issues
Angular html5 mode not working in apache
里面 public_html => .htaccess
有这个规则:
DirectoryIndex index.html
RewriteEngine On
RewriteRule ^/?$ prod/public/index.html [L]
那么 public_html => prod => .htaccess
应该有这个:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ public/index.html [L]
概览:
我想在目录结构内的默认页面 (index.html) 上重定向访问者,以便在使用 .htaccess
文件访问目录时显示(截至当前目录 index.html 正在加载)。
但是当我在 angular 应用程序中打开 $locationProvider.html5Mode(true)
时出现以下错误。
控制台错误:
应用程序的目录结构:
public_html
--prod
--public
--app
--controllers
--directives
--services
--app.config.js
--index.html
--.htaccess
.htaccess
public_html =>
.htaccess :
DirectoryIndex prod/public/index.html
此.htaccess
用于直接通过域名重定向应用程序页面(prod/public/index.html
)的访问者,截至目前,当用户访问该域时,当前目录(public_html
) index.html 正在加载。
public_html =>
产品 =>
.htaccess :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /prod/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /prod/public/#/
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/prod/ [L,R=301]
</IfModule>
产品 =>
public =>
index.html :
<base href="/prod/public/">
一切正常 如果我从 app.config.js
file.So 中删除 $locationProvider.html5Mode(true)
,当我注释掉 $locationProvider
代码时,#
中的一切正常模式。我可以毫无问题地到达 /#/abc
,等等。一旦我将 $locationProvider
部件放回原处,就什么也没有发生。
Stack Overflow 上的相关问题没有成功:
$locationProvider.html5Mode(true) issues
Angular html5 mode not working in apache
里面 public_html => .htaccess
有这个规则:
DirectoryIndex index.html
RewriteEngine On
RewriteRule ^/?$ prod/public/index.html [L]
那么 public_html => prod => .htaccess
应该有这个:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ public/index.html [L]