此处将为大家介绍关于将带有Webpack的Angular2App部署到Tomcat-404错误的详细内容,此外,我们还将为您介绍关于angular2webpack热部署问题、angular2或4部署到
此处将为大家介绍关于将带有Webpack的Angular 2 App部署到Tomcat-404错误的详细内容,此外,我们还将为您介绍关于angular2 webpack 热部署问题、angular2或4部署到tomcat中,让他跑起来、angular2部署到tomcat中,让他跑起来、angularjs – systemjs-builder:Angular 2 Component Relative Paths导致404错误的有用信息。
本文目录一览:- 将带有Webpack的Angular 2 App部署到Tomcat-404错误
- angular2 webpack 热部署问题
- angular2或4部署到tomcat中,让他跑起来
- angular2部署到tomcat中,让他跑起来
- angularjs – systemjs-builder:Angular 2 Component Relative Paths导致404错误
将带有Webpack的Angular 2 App部署到Tomcat-404错误
我想将Angular
2前端构建并部署到Tomcat应用程序服务器。首先,我完全按照以下介绍的步骤进行操作:https
:
//angular.io/docs/ts/latest/guide/webpack.html。
因此,我具有以下项目结构(所有文件都与上面的简介提及的内容完全相同):
angular2-webpack
-– config
------- helpers.js
------- karma.conf.js
------- karma-test-shim.js
------- webpack.common.js
------- webpack.dev.js
------- webpack.prod.js
------- webpack.test.js
-– DIST
-– node_modules
- –public
------- css
-------------- styles.css
-------图像
-------------- angular.png
-– src
------- app
-------------- app.component.css
-------------- app。 component.html
-------------- app.component.spec.ts
-------------- app.component.ts
------- ------- app.module.ts
------- index.html
------- main.ts
-------
polyfills.ts ------- vendor.ts
-– typings -–
karma.conf.js
-– package.json
-– tsconfig.json
-– typings.json
-– webpack.config.js
npm 分别webpack-dev-server --inline --progress --port3000
在控制台或Webstorm中启动→按预期工作
当我分别运行 npm build时,rimraf dist && webpack --config config/webpack.prod.js--progress --profile --bail
它会正确构建应用程序,并且输出包文件将按预期方式物理放置在dist文件夹中。
DIST
-–资产
------- angular.png
-– app.css
-–app.css.map
-– app.js
-–app.js.map
-– index.html的
- –polyfills.js
-–polyfills.js.map
-– vendor.js
-–vendor.js.map
接下来,我将dist文件夹的内容复制到Tomcat
9.0的webapps目录中。当我尝试访问已安装的应用程序时,.css和.js文件出现404错误(可以在所附图片中看到)。它尝试从错误的URL中获取文件→“
/ obv /”丢失。
我真的被困在这里,我感到我已经尝试了有关该主题的所有内容。
有人可以告诉我我在做什么错吗?先感谢您。
答案1
小编典典问题与标签有关<base href="/" />
。当使用类似tomcat的网络服务器或尝试使用从文件系统直接加载应用程序时,这是错误的firefoxindex.html
。必须将其更改为<base href="./"/>
。当应用程序仍然有问题时,请检查如何导入脚本文件。我试图将angular2-webpack与tomcat
一起使用,并且还需要更改所有脚本标签以在src属性中不使用前导斜线。
<script src="js/vendor.js" ></script>
使用webpack时,行为由属性控制output.publicPath
。在angular2文档和angular2-webpack中,将其设置为
output.publicPath="/"
这导致链接中的绝对路径。删除后,webpack将使用相对路径,并且脚本和图像的链接有效。
angular2 webpack 热部署问题
有人能解决-ng server 热部署 非常慢的问题吗,每次保存都需要10秒-20秒的时间,极大影响了开发效率,没人我隔段时间再问一遍。
angular2或4部署到tomcat中,让他跑起来
原文地址:http://blog.csdn.net/rotating_windmill/article/details/76768793
-------------------------------------------------------------------------
- 首先使用构建命令(npm run build或ng build)打包,打包完成后项目中会出现一个dist的目录,这个目录就是我们最终要部署的包了,把它命名为cc-client(关于打包后的base路径修改,参考后面的备 注)就可以了。
- 将命名好的cc-client整个目录复制到tomcat的webapps目录下。
- 运行tomcat,在浏览器中输入
http://localhost:8080/cc-client/#/login
。
- 注:想将默认的cc-client修改成你自己的base路径,打开package.json,修改构建命令”build”: “ng build –base-href /你的应用名称/”,例如”build”: “ng build –base-href /demo/”,这里的base路径要和你的项目名称一样。
- 如果你的路由方式使用的不是hash方式,那么你刷新后会报404,解决的方式是把路由改成hash方式,例如:export const appRoutes=RouterModule.forRoot(routes,{preloadingStrategy: SelectivepreloadingStrategy,useHash:true});
angular2部署到tomcat中,让他跑起来
- 首先使用构建命令(npm run build或ng build)打包,打包完成后项目中会出现一个dist的目录,这个目录就是我们最终要部署的包了,把它命名为cc-client(关于打包后的base路径修改,参考后面的备 注)就可以了。
- 将命名好的cc-client整个目录复制到tomcat的webapps目录下。
- 运行tomcat,在浏览器中输入
http://localhost:8080/cc-client/#/login
。 - 注:想将默认的cc-client修改成你自己的base路径,打开package.json,修改构建命令”build”: “ng build –base-href /你的应用名称/”,例如”build”: “ng build –base-href /demo/”,这里的base路径要和你的项目名称一样。
- 如果你的路由方式使用的不是hash方式,那么你刷新后会报404,解决的方式是把路由改成hash方式,例如:export const appRoutes=RouterModule.forRoot(routes,{preloadingStrategy: SelectivepreloadingStrategy,useHash:true});
具体的应用可以参考:https://github.com/332557712/cc
angularjs – systemjs-builder:Angular 2 Component Relative Paths导致404错误
我正在尝试使用systemjs-builder 0.15.16 buildStatic方法捆绑我的Angular 2 rc 1应用程序.角度组件具有视图以及脚本外部的一个或多个样式表.它们在one of two ways中的@Component元数据中引用
使用绝对路径:
@Component({ templateUrl: 'app/some.component.html',styleUrls: ['app/some.component.css'] })
使用现在推荐的相对路径:
@Component({ moduleId: module.id,templateUrl: 'some.component.html',styleUrls: ['some.component.css'] })
我的应用程序使用相对路径,事情一直很好.今天我决定使用systemjs-builder的buildStatic.每当存在相对路径时,生成的文件都会抛出404错误,因为浏览器正在获取localhost / some.component.html而不是localhost / app / some.component.html.下面是我的gulpfile.js的相关部分
var appDev = 'dev/'; var appProd = 'app/'; var typescript = require('gulp-typescript'); var tsProject = typescript.createProject('tsconfig.json'); var Builder = require('systemjs-builder'); var sourcemaps = require('gulp-sourcemaps'); gulp.task('build-ts',function () { return gulp.src(appDev + '**/*.ts') .pipe(sourcemaps.init()) .pipe(typescript(tsProject)) .pipe(sourcemaps.write()) .pipe(gulp.dest(appProd)); }); gulp.task('bundle',['build-ts'],function() { var builder = new Builder('','./systemjs.config.js'); return builder .buildStatic(appProd + '/main.js',appProd + '/bundle.js',{ minify: false,sourceMaps: true}) .then(function() { console.log('Build complete'); }) .catch(function(err) { console.log('Build error'); console.log(err); }); });
使用相对路径,如果我只运行build-ts gulp任务并浏览“常规”方式,那么事情就可以了.如果我运行bundle gulp任务并尝试使用bundle.js文件浏览应用程序,那么在应用程序尝试加载外部模板和样式表的任何地方都会出现404错误.我试图通过将templateUrl:’some.component.html’更改为templateUrl:’./ some.component.html’无效来明确路径的相对性质.硬编码绝对路径似乎是一个坏主意.我错过了什么?
诀窍是什么:在systemjs-builder的buildStatic方法的配置对象中,将encodeNames设置为false.所以线……
.buildStatic( appProd + '/main.js',sourceMaps: true} )
成为…
.buildStatic( appProd + '/main.js',sourceMaps: true,encodeNames:false} )
附加信息
tsconfig.json
{ "compilerOptions": { "target": "ES5","module": "commonjs","moduleResolution": "node","sourceMap": true,"emitDecoratorMetadata": true,"experimentalDecorators": true,"removeComments": false,"noImplicitAny": false,"outDir": "./app" },"filesGlob": [ "./dev/**/*.ts","!./node_modules/**/*.ts" ],"exclude": [ "node_modules","typings" ] }
我们今天的关于将带有Webpack的Angular 2 App部署到Tomcat-404错误的分享已经告一段落,感谢您的关注,如果您想了解更多关于angular2 webpack 热部署问题、angular2或4部署到tomcat中,让他跑起来、angular2部署到tomcat中,让他跑起来、angularjs – systemjs-builder:Angular 2 Component Relative Paths导致404错误的相关信息,请在本站查询。
本文标签: