4

我正在使用 django 存储从 s3 提供我的静态文件,并且正在将它们全部移动到 webpack 包中。这适用于django-webpack-loader不关心 django 在哪里找到捆绑包的情况。

我的问题是,当我开始使用 定义分割点require.ensure时,捆绑包尝试使用相对路径而不是 s3 存储桶下载块,因为 webpack 的代码分割功能与 django 存储无关。

有没有办法注入自定义逻辑来按需获取块?我并没有将我的 s3 捆绑地址硬编码到配置文件中,但到目前为止我尝试过的任何方法都没有奏效。

这是我的 webpack 配置(用咖啡脚本编写)

path = require "path"
webpack = require 'webpack'
BundleTracker = require 'webpack-bundle-tracker'
ExtractTextPlugin = require "extract-text-webpack-plugin"
loaders = require "./loaders.coffee"

module.exports =
    context: __dirname
    entry: require "./entries.coffee"
    output:
        path: path.resolve 'app/static/dist/'
        filename: '[name].js'
        sourceMapFilename: "[name].map.js",
    devtool: "source-map"

        plugins: [

            new BundleTracker filename: './webpack/webpack-stats-prod.json'

            new webpack.DefinePlugin
            'process.env':
                'NODE_ENV': JSON.stringify 'production'

            new webpack.optimize.OccurenceOrderPlugin

            new ExtractTextPlugin "[name].css"

            new webpack.optimize.UglifyJsPlugin
            sourceMap: false
            compressor:
                warnings: false


        ]

    module:
        loaders: loaders.production_loaders

    resolve: loaders.resolution
4

1 回答 1

3

原来我只需要将 publicPath 选项设置在output. 我设置了我的 ansible 脚本以将存储桶地址写入附近的文件。

{bucket} = require "./bucket.json"


module.exports =
    context: __dirname
    entry: require "./entries.coffee"
    output:
        path: path.resolve 'app/static/dist/'
        filename: '[name].js'
        sourceMapFilename: "[name].map.js",
        publicPath: bucket + "/static/dist/"
于 2016-10-28T17:05:18.673 回答