regex - AngularJS 和 .htaccess 重定向

标签 regex angularjs .htaccess redirect

我正在使用 angularJs 构建一个网站。

我有以下文件夹结构:

/
--index.html
--js
  --contoller.js
--css
  --style.css
--pages
  --homepage.html
  --faq.html
  --about.html

索引页上的相关html是:

<div id="app">
    <div ng-view>
        <!-- this is where the views are injected -->
    </div>
</div>
<li><a href="about">About</a></li>
<li><a href="about/faq">FAQ</a></li>

路由是:

obApp.config(function($routeProvider, $locationProvider) {
    $routeProvider
    // route for the home page
    .when('/', {
        templateUrl : 'pages/homepage.html',
        controller  : 'homepageController'
    })
    // route for the about page
    .when('/about/faq', {
        templateUrl : 'pages/faq.html',
        controller  : 'faqController'
    })
    // route for the contact page
    .when('/about', {
        templateUrl : 'pages/about.html',
        controller  : 'aboutController'
    })
})

.htaccess 文件是:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

现在这是我的问题: 当我访问链接时,一切正常 - 所以没关系。当我在浏览器地址栏中输入 url /about 时,它就可以工作了 - 再次正常。然而,当我这样做时 /about/faq 我让一切正常工作,但样式表没有加载。我检查了网络响应,发现它们的内容类型错误:

response image

正如您所看到的,带有 google 字体的外部链接加载正常,只有本地 css 文件以错误的类型发送。

我的链接位于标题中,如下所示:

<link rel="stylesheet" type="text/css" href="css/style.css" >       
<!-- external font -->
<link href='http://fonts.googleapis.com/css?family=Courgette' rel='stylesheet' type='text/css'>

话虽这么说,我被困住了。我正在本地计算机上开发它,网址如下:

localhost/websites/angularProject

我的猜测是重定向需要额外的东西。 (?)

最佳答案

改用绝对路径。

您的链接

<link rel="stylesheet" type="text/css" href="/websites/angularProject/css/style.css" >

jsimages 链接执行相同的操作。

index.html

<div id="app">
    <div ng-view>
        <!-- this is where the views are injected -->
    </div>
</div>
<li><a href="/websites/angularProject/about">About</a></li>
<li><a href="/websites/angularProject/about/faq">FAQ</a></li>

对于您的链接,您还可以使用 <base href="/websites/angularProject/" /> html 标签而不是替换所有链接。

htaccess

RewriteEngine On
RewriteBase /websites/angularProject/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

关于regex - AngularJS 和 .htaccess 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25509522/

相关文章:

python - 提取以大写字母开头的单词

javascript - 何时使用 AngularJS 过滤器而不是 Controller 方法?

angularjs - Protractor - 在 webstorm 中调试

带有 url 屏蔽的 Apache 通配符子域

.htaccess - htaccess 在 RewriteCond 中使用 OR 条件

regex - 如何从 RDD 中的键中删除双引号并将 JSON 分成两行?

regex - 如何在 Python 3.2 正则表达式中指定西里尔字符范围?

Java:将文件模式转换为正则表达式模式

javascript - Angular js ng-bind-html 在输入 `{_}` 上没有给出任何输出

.htaccess AuthType 基本文件匹配 401 和 403 的除 Maintenance.html 之外的所有文件