今天学习了dev-server这个配置,中间遇到疑惑,我写了contentBase是可以走通,可以再localhost:8080看到页面并且正确加载bundle.js的,

但是这个contentBase并不是必须的,不写按理说也可以实现显示页面并且加载js,但是我去掉后,可以编译成功,但是我这里就遇到问题了,一直提示找不到bundle.js。

我的目录设置如下:

其中index.html是我手动写的里面用script标签来引用bundle.js。

<script src="./js/bundle.js"></script>

这里的路径要根据index.html所在的位置来引用bundle.js所以要就加上js这个文件夹。

我的webpack.config.js配置如下:

/**
* Created by zxf on 2017/4/25/0025.
*/
const path=require('path');
var htmlPlugin=require('html-webpack-plugin');
module.exports={
entry:'./src/js/main.js',
output:{
filename:'js/bundle.js',
path:path.resolve(__dirname,"./dist")
},
module:{
rules:[
{
test:/\.css$/,
use:[
{loader:'style-loader'},
{loader:'css-loader'}
]}
]
},
devServer:{
inline:true
}
}

那么配置好上面的,运行webpack-dev-server后编译没有报错,但是打开localhost:8080,发现并没有自动显示index.html的内容,

而是显示根目录下的文件夹以及webpack配置文件,这个可以理解因为并没有显式的设置contentBase,我可以手动点击进入dist文件夹下,

进入后就会提示找不到bundle.js,因为我在html文件里面写了<script src="./js/bundle.js"></script>这里我认为是dev-server并没有去获取内存中的js,

而是一直在获取本地的bundle.js,不应该啊,dev-server是会在内存中生成js和html页面的,这是为什么呢?后来经过大神指点,明白了,

原来不指定contentBase的话dev-server的默认根目录是在webpack.config同一级的目录下,我在这个目录下并没有写index.html,而在dist/下写了index.html,

它就以这个本地我写的为准了,而内存中的html的路径还是在根目录下,解决方法是在根目录下新建一个index.html,里面引用js的路径不用改,但是这样很不方便啊,

如果是多页应用,不可能在根目录下建立那么多页面文件,这里有两个思路:一是必须写上contentBase参数,二是利用webpack-html-plugin这个插件它可以生成html文件到指定的目录下,这样就可以不用再根目录下建立页面文件了,直接在src下建立模板文件,

/**
* Created by zxf on 2017/4/25/0025.
*/
const path=require('path');
var htmlPlugin=require('html-webpack-plugin');
module.exports={
entry:'./src/js/main.js',
output:{
filename:'js/bundle.js',
path:path.resolve(__dirname,"./dist/")
},
module:{
rules:[
{
test:/\.css$/,
use:[
{loader:'style-loader'},
{loader:'css-loader'}
]}
]
},
plugins:[
new htmlPlugin({
filename:'index.html',
template:"./src/index.html"
}),
new htmlPlugin({
filename:'b.html',
template:"./src/b.html"
})],
devServer:{
inline:true
}
}

  有几个页面就写几个new htmlPlugin()配置,template参数写上模板的路径,这样也可以实现不写contentBase的情况下正确显示页面并且加载js

webpack中dev-server不写contentBase时如何设置可以显示页面并且加载js的更多相关文章

  1. webpack 4 & dev server

    webpack 4 & dev server proxy https://webpack.js.org/configuration/dev-server/#devserverproxy htt ...

  2. 关于asp.net中页面事件加载的先后顺序

    一.ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件 ...

  3. 完美解决Webpack多页面热加载缓慢问题【转载】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/localhost_1314/article ...

  4. HTML5中script的async属性异步加载JS

    HTML5中script的async属性异步加载JS     HTML4.01为script标签定义了5个属性: charset 可选.指定src引入代码的字符集,大多数浏览器忽略该值.defer 可 ...

  5. WebView加载页面,带链接的Img在页面第一次加载时无法显示的问题

    在做一个App的过程中,用到WebView来显示几个页面.在这个过程中发现有些页面的显示出现了异常:页面中的Img链接在页面第一次加载时无法正常显示图片,退出页面再次进入后可正常显示.开始以为是Web ...

  6. 【记录】VS2012新建MVC3/MVC4项目时,报:此模板尝试加载组件程序集“NuGet.VisualStudio.Interop...”

    最近电脑装了 VisualStudio "14" CTP,由于把其他版本的 VS 卸掉,由高到低版本安装,当时安装完 VisualStudio "14" CTP ...

  7. 动态加载JS过程中如何判断JS加载完成

    在正常的加载过程中,js文件的加载是同步的,也就是说在js加载的过程中,浏览器会阻塞接下来的内容的解析.这时候,动态加载便显得尤为重要了,由于它是异步加载,因此,它可以在后台自动下载,并不会妨碍其它内 ...

  8. 解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题

    解决eclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是sr ...

  9. myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题

    解决myeclipse部署maven时,src/main/resources里面配置文件加载不到webapp下classes路径下的问题. 有时候是src/main/resources下面的,有时候是 ...

随机推荐

  1. “玲珑杯”ACM比赛 Round #12题解&源码

    我能说我比较傻么!就只能做一道签到题,没办法,我就先写下A题的题解&源码吧,日后补上剩余题的题解&源码吧!                                     A ...

  2. .NET中可空值类型实现原理

    为了让.Net中的值类型可以赋值为null,微软特地添加了Nullable<T>类型,也可简写为T?.但是Nullable<T>自身是结构体,也是值类型,那么它是如何实现将nu ...

  3. Struts2之OGNL表达式

    OGNL(Object-Graph Navigation Language的简称),对象图导航语言,它是一门表达式语言,除了用来设置和获取Java对象的属性之外,另外提供诸如集合的投影和过滤以及lam ...

  4. ArcGIS API For JavaScript 加载地图,设置地图中心点

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. delphi处理消息的几种方式

    第一种:自定义处理单条消息 unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, C ...

  6. Exchange无法发送邮件 未找到匹配的连接器来路由外部收件人解决办法

    使用命令行管理程序创建发送连接器 本示例创建发送连接器,用于集线器传输服务器 HubA 向 Internet 发送电子邮件.   复制 New-SendConnector -Name "In ...

  7. iOS开发之数据存储之Preference(偏好设置)

    1.概述 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能. 每个应用都有个NSUserDefaults实例,通过它来存取偏好 ...

  8. centos7 部署openstf

    1.安装nodejs,版本需大于6.9(写稿时使用的6.9,7.7.4版本会无法安装zmq): 2.安装android sdk(详细略,百度一大堆),注意必须将platform-tool配置到环境变量 ...

  9. ajax 原理----初级篇

    一.贴dome,ajax三大步 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  10. flex盒子里面元素linehight对高度的影响

    那天,高高兴兴的测试flex属性.大家都知道,当父盒子display:flex的时候,子盒子即使宽高和大于父盒子,也会由于flex的特性进行收缩:然而,在给父盒子加了flex-direction:co ...