如何在所有模块中使用角度1.5的相对URL

时间:2016-07-05 05:26:59

标签: javascript angularjs webpack

我正在使用angular 1.5和webpack来生成带有角度应用程序的 dist 文件夹。

这是我的文件夹结构:

--app
  --dist
    --loginComponent
      --login.html
    --homeComponent
      --home.html
    ...
    --app.css
    --app.js
  --index.html

这是我的index.html:

<!doctype html>
<html lang="es" ng-app="firmaDigitalApp" ng-strict-di>
<head>
<meta charset="utf-8">

<link rel="stylesheet" type="text/css" href="dist/app.css">
<script src="dist/app.js"></script>
</head>

<body>
    <app></app>
</body>
</html>

到目前为止一切顺利,问题是app.js生成的是不是通过其路径以相对方式访问html,因此无法找到资源(而不是在 context <中查找home.html /em>/dist/homeComponent.html,它正在 context /homeComponent.html中查找它。

以防万一,这是homeModule.js:

require('./administradorComponent/administradorModule.js');
require('./definicionComponent/definicionModule.js');

var controller = require('./homeController');

var homeModule = angular.module('homeModule', [ 'administradorModule', 'definicionModule' ]);

homeModule.component('homeComponent',
{
  templateUrl : 'homeComponent/home.html',
  $routeConfig : [
    {
     path : '/administrador/...',
     name : 'Administrador',
     component : 'administradorComponent',
     useAsDefault : true
     }]
});

homeModule.controller('homeController', [ '$rootScope', '$location', '$log', controller ]);

我可以做什么,以便我的角度应用程序资源使用相对路径相互访问,所以我不必一遍又一次地键入 dist /

如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

我建议您使用html-loader将模板内置到输出文件中(即templateUrl),而不是使用app.js。如果你设置了它,你可以这样做:

template: require("homeComponent/home.html") // Resolves to a string

这将导致您的捆绑包需要花费更长的时间来预先下载,因为所有模板也会被加载,但是您不必等待模板在组件初始化时异步加载,所以它在我看来是均匀的。