当前位置: 首页 > 面试题库 >

非Webpack的内容由/ foo提供

祖翰音
2023-03-14
问题内容

我只是无法启动此服务器,我阅读了webpack-dev-server
docs

devServer: {
  contentBase: path.join(__dirname, "dist"),
  compress: true,
  port: 9000
}

示例代码看起来很简单,但是无论如何我都无法成功启动此服务器,无论是哪个文件夹,它都无法获取 内容

任何帮助将不胜感激。

输出:

Project is running at http://0.0.0.0:8080/
webpack output is served from /assets/
Content not from webpack is served from ~/WebstormProjects/react_back/assets/

我的项目结构:

├── [drwxr-xr-x ]  src
│   └── [-rw-r--r-- ]  index.js
├── [drwxr-xr-x ]  public
│   ├── [-rw-r--r-- ]  index.html
│   ├── [drwxr-xr-x ]  assets
│   │   └── [-rw-r--r-- ]  bundle.js
│   └── [-rw-r--r-- ]  favicon.ico
├── [-rw-r--r-- ]  package.json
├── [-rw-r--r-- ]  npm-debug.log
├── [-rw-r--r-- ]  webpack.config.js

package.json

  "scripts": {
    "build": "webpack",
    "dev": "webpack-dev-server --devtool eval"
  },

webpack.config.js

module.exports = {
    entry: __dirname + "/src/index.js",
    output: {
        path: __dirname + "/public",
        publicPath: "/assets/",
        filename: "assets/bundle.js",
        chunkFilename: '[name].js'
    },
    devServer: {
        contentBase: __dirname + "/assets/",
        inline: true,
        host: '0.0.0.0',
        port: 8080,
    },
    module: {
        loaders: [
            {
                test: /\.(jpg|jpeg|gif|png|ico)$/,
                exclude: /node_modules/,
                loader: 'file-loader?name=[name].[ext]'
            },
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
                query: {
                    presets: ["es2016", "react", "env", "stage-2"]
                }
            }
        ]
    }
};

版:

➜  node -v
v7.6.0
➜  webpack-dev-server -v
webpack-dev-server 2.4.1
webpack 2.2.1

问题答案:

第一个问题是您要从中提供内容,assets/但是您没有该目录,而您却拥有该目录,public/assets/这甚至不是您想要的目录,因为您index.html在中public/。因此,您真正想要的是将设置contentBasepublic/

devServer: {
    contentBase: __dirname + "/public/",
    inline: true,
    host: '0.0.0.0',
    port: 8080,
},

现在,您仍然会遇到webpack-dev- server无法提供正确捆绑销售商品的问题。它可能会起作用,但这是因为您在实际的文件系统上有捆绑软件,将使用捆绑软件,而不是webpack-dev- server从内存中使用的捆绑软件。这样做的原因是,webpack-dev- server只有在命中了正确的路径后才能从内存中提供服务。假设你包括assets/bundle.js你的index.html,这将匹配路径,但你的设置publicPath: "/assets/",因此将寻找/assets/并添加文件名给它(这是assets/bundle.js,在现实中束从供应/assets/assets/bundle.js

要解决此问题,您可以删除该publicPath选项(设置publicPath: "/"具有相同的效果)。

output: {
    path: __dirname + "/public",
    filename: "assets/bundle.js",
    chunkFilename: '[name].js'
},

或者,您可以将输出路径更改为/public/assets/,文件名更改为just
bundle.js。这也将使您的块进入资产目录,这可能仍然是您想要的。

output: {
    path: __dirname + "/public/assets/",
    publicPath: "/assets/",
    filename: "bundle.js",
    chunkFilename: '[name].js'
},

注意:publicPath影响某些更改资产URL的加载程序。



 类似资料:
  • 通过由浅入深,前后连贯的章节安排,本教程将向你介绍CodeIgniter框架基础以及MVC程序架构的基本理论。 在教程中,你将创建一个简单新闻系统。首先,你将学会:如何编写代码让程序能够加载静态内容页面;紧接着,你将学会:从数据库中读取新闻条目数据并将其显示出来;最后,你将学会:通过创建页面表单将新闻条目添加进数据库中。 教程将主要介绍以下技术要点: 模型-视图-控制器(Model-View-Co

  • 我们欢迎各类开发者服务、Docker 平台、SaaS 自动化工具与 DaoCloud 对接,我们将为您在这个版块开设介绍页面,并在 DaoCloud 各类市场渠道帮助您宣传。 如希望提交内容,请与我们联系,或直接提 Pull Request。

  • 我在运行webpack dev服务器时遇到以下问题:当我运行npm start时,它显示以下内容: ➜ 目录git:(暂存)✗ npm启动 目录 @1.0.0 启动目录 BUILD_DEV=1 BUILD_STAGING=1 ./node_modules/webpack-dev-server/bin/webpack-dev-server.js http://localhost:8080/ webp

  • 我似乎对这段代码有问题,我试图使用mysqli_connect()和mysqli_query()查询数据库,但代码没有返回mysqli对象,我不知道为什么。我自己编写了代码来格式化查询,我确信没有失败,因为我每次都在检查:(我使用XAMPP,使用localhost进行测试),可能是安装的php已经损坏了吗??) 我用这里的代码来测试:mysqli_query()返回的不是false,而是mysql

  • 问题内容: 我开始在Go中编写服务器端应用程序。我想使用Accept- Encoding请求标头来确定是否GZIP响应实体。我曾希望找到一种直接使用http.Serve或http.ServeFile方法执行此操作的方法。 这是一个很普遍的要求。我错过了什么还是我需要推出自己的解决方案? 问题答案: 目前尚无对gzip压缩HTTP响应的“开箱即用”支持。但是添加它非常简单。看一下 https://g

  • 我有一个运行在上。 我使用来提供静态文件,即生成的包,但这是不相关的。 我想要实现的是: 关于我想提供。我能做到。 在我想为。 在我想提供。 最后两个,我做不到。当我进入或我收到了默认的nginx页面。 为了使事情更加混乱被完全注释掉。 此外,如果在的块中,我将替换为,我将获得该特定项目的服务,但是我将无法为另一个服务。 下面,我将向您展示我的nginx配置 谢谢你的帮助! 编辑 我找到的解决方案