我想为webpack生成的每个静态url添加一个前缀(“/ static /”)。但是我希望生成的bundle忽略它,所以app.js和staticfiles都会在同一个目录中结束。文件加载器允许使用?name=static/[name].[ext]
指定前缀,但我的包在输出中位于static/
目录内。
我想这样做是因为我正在从龙卷风中提供我的应用程序,所以每条路径都需要某种前缀或我无法提供主页
Webpack配置
module: {
loaders: [
...
{test: /\.(jpg|ttf|html|eot|woff2?|svg)$/, loader: "file?name=static/[hash].[ext]"},
]
},
Tornado config
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/'
)
上面设置的static_url_prefix
实际上是默认设置。我无法将其设置为空或根路径转到龙卷风的staticHandler
而不是我的mainHandler
。
答案 0 :(得分:12)
在webpack.config.js中设置publicPath选项。
output: {
path: "/home/proj/public/assets",
publicPath: "/static/"
}
https://github.com/webpack/docs/wiki/configuration#outputpublicpath