2017-05-21 1 views
2

Maintenant j'essaye de construire le projet angular2 avec l'option --base-href, mais cela ne fonctionne pas bien.Angular2 pourquoi - l'option de construction de base-href ne fonctionne pas

ng build --bh =/Chambre/frontend/

Ceci est contenu .angular-cli.json

{ 
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json", 
    "project": { 
    "name": "frontend" 
    }, 
    "apps": [ 
    { 
     "root": "src", 
     "outDir": "D:/Work/Learn/Laravel/Chamber/Chamber/public/frontend/", 
     "assets": [ 
     "assets", 
     "assets/favicon.ico" 
     ], 
     "index": "index.html", 
     "main": "main.ts", 
     "polyfills": "polyfills.ts", 
     "test": "test.ts", 
     "tsconfig": "tsconfig.app.json", 
     "testTsconfig": "tsconfig.spec.json", 
     "prefix": "app", 
     "styles": [ 
      "../node_modules/bootstrap/dist/css/bootstrap.min.css", 
      "../node_modules/font-awesome/scss/font-awesome.scss", 
      "styles.scss" 
     ], 
     "scripts": [ 
      "../node_modules/jquery/dist/jquery.min.js", 
      "../node_modules/bootstrap/dist/js/bootstrap.min.js" 
     ], 
     "environmentSource": "environments/environment.ts", 
     "environments": { 
     "dev": "environments/environment.dev.ts", 
     "prod": "environments/environment.prod.ts" 
     } 
    } 
    ], 
    "e2e": { 
    "protractor": { 
     "config": "./protractor.conf.js" 
    } 
    }, 
    "lint": [ 
    { 
     "project": "src/tsconfig.app.json" 
    }, 
    { 
     "project": "src/tsconfig.spec.json" 
    }, 
    { 
     "project": "e2e/tsconfig.e2e.json" 
    } 
    ], 
    "test": { 
    "karma": { 
     "config": "./karma.conf.js" 
    } 
    }, 
    "defaults": { 
    "styleExt": "scss", 
    "component": {} 
    } 
} 

Après la construction, index.html du OUTDIR ne contient pas basehref valide comme ci-dessous.

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Chamber</title> 
    <base href= "/"> 

    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 
</head> 

<body class="homepage"> 
    <app-root>Loading...</app-root> 

<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="scripts.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body> 
</html> 

Ceci est ma version angulaire2.

D:\Work\Learn\Laravel\Chamber\Frontend>ng -v 
Your global Angular CLI version (1.0.3) is greater than your local 
version (1.0.1). The local Angular CLI version is used. 

To disable this warning use "ng set --global warnings.versionMismatch=false". 
    _      _     ____ _  ___ 
/\ _ __ __ _ _ _| | __ _ _ __ /___| | |_ _| 
/△ \ | '_ \/_` | | | | |/ _` | '__| | | | | | | 
/___ \| | | | (_| | |_| | | (_| | |  | |___| |___ | | 
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_|  \____|_____|___| 
       |___/ 
@angular/cli: 1.0.1 
node: 6.10.0 
os: win32 x64 
@angular/common: 4.1.0 
@angular/compiler: 4.1.0 
@angular/core: 4.1.0 
@angular/forms: 4.1.0 
@angular/http: 4.0.3 
@angular/platform-browser: 4.1.0 
@angular/platform-browser-dynamic: 4.1.0 
@angular/router: 4.1.0 
@angular/cli: 1.0.1 
@angular/compiler-cli: 4.1.0 

D:\Work\Learn\Laravel\Chamber\Frontend> 

Je ne sais pas ce qui ne va pas. Y a-t-il quelqu'un pour résoudre ce problème?

+0

Quelle version d'Angular et de la CLI? Exécutez 'ng -v' et fournissez la sortie. – jonrsharpe

+0

Merci pour votre attention. Je vais attacher le résultat ng -v comme réponse (parce que la longueur du commentaire est courte) – Alex

+0

Avez-vous essayé de créer un nouveau projet factice avec cli angulaire et construit avec 'ng build --bh xxx'? Si cela n'a pas fonctionné, cela signifie que le problème n'est pas spécifique au projet. – ulubeyn

Répondre

4

Il ya une faute de frappe dans votre code HTML, c'est la raison. Remplacez <base href= "/"> par <base href="/">.

+0

Merci pour votre effort. C'est la bonne réponse! – Alex

+1

OMG ... Je pense que j'aurais perdu des heures sur un problème similaire sans cette réponse. –

+1

J'ai eu le même problème, j'utilisais des ticks '' et ça ne marcherait pas tant que je ne passerais pas à "", '', merci @ulubeyn – Flea