vue-cli打包问题

打包出来的文件,css都能用,就是static里面的json文件404,已经照着网上修改了一次,还是没法显示。

  build: {
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: './',

我是这样引用本地 json文件的:

  mounted: function () {
    axios.get('static/data/dataBase.json')
      .then((res) => {
        console.log(res)
        this.news = res.data.dataTxt
      })
      .catch((err) => {
        console.log(err)
      })
  },
阅读 2.7k
2 个回答

  assetsPublicPath: './',

改成

  assetsPublicPath: '/',

试试

同意 @xiaofei 的答案

这是vue中比较常见的问题了。

因此建议你去查一下

assetsRoot: path.resolve(__dirname, '../dist'), // 打包出来的文件夹
assetsSubDirectory: 'static', // 除了html其他静态资源的文件夹
assetsPublicPath: './', // 默认 '/' 一般不需要设置或者设置绝对路径,像你设置相对路径稍微复杂

    
    
    



我这里引用网上的答案,你可以参考一下。

assetsPublicPath 这个静态资源的引用前缀, 默认的是/

按照上面的配置, 当你把 dist 文件夹下的文件放到服务器,

能用http://www.xxx.com/static/js/... 那么assetsPublicPath就不需要修改了
需要用http://www.xxx.com/aaa/bbb/st...
那么assetsPublicPath就得改成/aaa/bbb/, 然后重新 build 一次, 上传到服务器 当你把静态文件传到 cdn,
需要用http://stacic.yyy.com/aaa/bbb...
那么assetsPublicPath就得改成http://stacic.yyy.com/aaa/bbb/, 然后重新 build 一次,
上传到服务器 用绝对路径听起来好像很复杂啊, 能不能用相对路径呢? 当然也是可以的, 不过配置起来要比用绝对路径复杂的多, 主要是涉及到
css 文件的里图片和字体等

首先, assetsSubDirectory要设置成空 将assetsPublicPath, 改成./ 修改new
ExtractTextPlugin(utils.assetsPath('css/[name].[contenthash].css')),
改成new ExtractTextPlugin('[name].[contenthash].css')

引用自- https://www.mmxiaowu.com/arti...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题