类型错误:无法读取属性“取代”的未定义(TypeError : Cannot read proper

2019-09-30 10:51发布

概述:

我想给访问者重定向默认页面(的index.html)的目录结构中,当一个目录使用访问显示.htaccess文件(截至目前的当前目录的index.html是加载)。

但是当我打开$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 => PROD => htaccess的:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /prod/public/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) /prod/public/#/$1 
    RewriteCond %{HTTP_HOST} ^example.com [NC]
    RewriteRule ^(.*)$ http://www.example.com/prod/$1 [L,R=301]
</IfModule>

PROD => 公共 => 的index.html:

<base href="/prod/public/">

一切工作正常,如果我删除$locationProvider.html5Mode(true)从我app.config.js file.So,当我注释掉$locationProvider代码,一切工作在精细#模式。 我能到/#/abc等,没有问题。 当我把$locationProvider部分回,没有发生。

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

$ locationProvider.html5Mode(真正的)问题

角HTML5模式不工作阿帕奇

Answer 1:

里面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]


文章来源: TypeError : Cannot read property 'replace' of undefined