2016-01-23 94 views
1

我在解決網址問題時遇到了問題。在我的本地節點服務器上運行時(因爲它很方便),它的功能就像一個魅力,但是當我將它上傳到我的服務器時,如果我把它放在一個子文件夾中(http://hostname.com/folder),就會停止工作。Webpack網址不正確

我在JS中加載的圖像需要中斷。它們位於我的項目根目錄中的「資產」文件夾內。但它在服務器的根目錄中搜索。

的WebPack配置:

var webpack = require('webpack'); 
var ExtractTextPlugin = require('extract-text-webpack-plugin'); 
var path = require('path'); 

var config = require('./_config'); //paths config.. 

module.exports = { 
    entry: [ 
     config.build('js', 'src'), //JavaScript entry point 
     config.build('css', 'src'), //CSS entry point 
    output: { 
     path: config.js.dest.path, 
     filename: config.js.dest.file //JavaScript end point 
    }, //quickest, webpack -d -p for production 
    devtool: 'eval', 
    module: { 
     //test: which filetype?, 
     //exclude: which folders to exclude 
     loaders: [{ 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'babel', 
      query: { 
       babelrc: path.join(__dirname, '.babelrc') 
      } 
     }, { 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'eslint' 
     }, { 
      test: /\.scss$/, 
      loader: ExtractTextPlugin.extract('css!postcss!sass?outputStyle=expanded') 
     }, { 
      test: /\.json$/, 
      loader: 'file?hash=sha512&digest=hex&name=../assets/[hash].[ext]' 
     }, { 
      test: /\.(jpe?g|png|gif|svg)$/i, 
      loaders: [ 
       'file?hash=sha512&digest=hex&name=../assets/[hash].[ext]', 
       'image-webpack?{progressive:true, optimizationLevel: 7, interlaced: false, pngquant:{quality: "65-90", speed: 4}}' 
      ] 
     }] 
    }, postcss: function(){ 
     return [ 
      require('postcss-will-change'), 
      require('postcss-cssnext')({ 
       browsers: ['IE >= 10', 'last 2 version'], 
       features: { 
        autoprefixer: { 
         cascase: false 
        } 
       } 
      }) 
     ] 
    }, //webpack plugins 
    plugins: [ 
     new webpack.optimize.DedupePlugin(), 
     //extract CSS into seperate file 
     new ExtractTextPlugin(
      config.build('css', 'dest') 
     ) 
    ], eslint: { 
     configFile: path.join(__dirname, '.eslintrc'), 
     ignorePath: path.join(__dirname, '.eslintignore') 
    }, resolve: { 
     extensions: ['', '.json', '.js', '.css'], 
     fallback: path.join(__dirname, 'node_modules') 
    }, resolveLoader: { 
     fallback: path.join(__dirname, 'node_modules') 
    } 
}; 

提前感謝!

回答

0

publicPath設置爲指向您的資產目錄。例如:

​​

此外,你需要調整你這樣的裝載機的定義:

loader: 'file?hash=sha512&digest=hex&name=./assets/[hash].[ext]' 

做這些調整後,您的應用程序運行,我沒有任何錯誤。

+0

我想你的解決方案,但仍然沒有更迭: 'Phaser.Loader - 圖像[cuberdon]:從URL /資產/../資產錯誤裝載資產/ 58e500fe3b4f0ae0d28707150235895f.png' –

+0

你能上建立一個可運行的例子GitHub的?沒有具體的事情很難說。 'publicPath'顯然是在做一些事情。我只是不確定那個'...'。 –

+0

你可以在這裏找到它:https://github.com/JannesV/Major3這是一個學校項目,所以不要期望太多:) –