为webpack中生成的URL添加静态前缀

sko*_*per 8 webpack

我想为webpack生成的每个静态url添加一个前缀("/ static /").但是我希望生成的bundle忽略它,所以app.js和staticfiles都会在同一个目录中结束.文件加载器允许指定前缀,?name=static/[name].[ext]但我的bundle然后static/在输出中的dir 内.

我想这样做是因为我正在从龙卷风中提供我的应用程序,因此每条路径都需要某种前缀或者我无法提供主页

Webpack配置

module: {
    loaders: [
        ...
        {test: /\.(jpg|ttf|html|eot|woff2?|svg)$/, loader: "file?name=static/[hash].[ext]"},
    ]
},
Run Code Online (Sandbox Code Playgroud)

龙卷风配置

ROOT_DIR = os.path.abspath(os.path.dirname(__file__))

application = tornado.web.Application(handlers=[
        (r'/', MainHandler),
        (r'/socket', SocketHandler),
        (r'/utilization', UtilizationHandler)
    ],
    autoreload=True,
    debug=False,
    template_path=os.path.join(ROOT_DIR, 'templates'),
    static_path=os.path.join(ROOT_DIR, 'public'),
    static_url_prefix='/static/'
)
Run Code Online (Sandbox Code Playgroud)

static_url_prefix上面的设置实际上是默认设置.我不能将它设置为空或根路径转到龙卷风staticHandler而不是我的mainHandler.

sww*_*314 15

在webpack.config.js中设置publicPath选项.

output: {
    path: "/home/proj/public/assets",
    publicPath: "/static/"
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/webpack/docs/wiki/configuration#outputpublicpath

  • 我通过将 `--output-public-path='/static/'` 添加到 package.json 中的 `npm run build` 命令中,而不是在 webpack.config.js 中使用 `publicPath` 来解决这个问题 (2认同)