Сегодня я застрял на разработке веб-сайта для изучения новых технологий: вот стек с тем, что я изучаю, VueJS + Webpack / Nginx, размещенный на докере.Я планирую работать с сервером nodejs.
Я прошел несколько курсов и прочитал несколько руководств на этой неделе, чтобы лучше понять каждую технику, но мне, кажется, не хватает точки.
При загрузкемой html через nginx (http://localhost:8000/), Я получаю 404 на http://localhost:8000/build/bundle.js и http://localhost:8000/bundle.js. Я пробовал любой путь.
Мой веб-путь заканчивается на / var/ html / www / src (как будто я удаляю свой html-файл, я вижу содержимое каталога). Включая test.js из того же каталога, в котором работает мой индекс.
Вот мои файлы:
nginx / conf.d / default.conf (по умолчанию включен в nginx / nginx.conf, не трогал)
server {
listen 8000;
server_name localhost;
location / {
autoindex on;
autoindex_exact_size off;
root /var/www/html/src;
index index.html index.htm;
}
}
webpack.config.js
const path = require('path');
const VueLoaderPlugin = require('vue-loader/lib/plugin')
const config = {
mode: "development",
entry: './src/app.js',
output: {
path: path.resolve(__dirname, 'build'),
publicPath: '/build/', //note : I tried without and with '/'
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
'loader': 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
},
},
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.css$/,
loader: 'css-loader'
}
]
},
plugins: [
new VueLoaderPlugin()
]
}
module.exports = config;
package.json
{
"name": "html",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"vue": "^2.5.17",
"foundation-sites": "^6.5.0"
},
"devDependencies": {
"@babel/core": "^7.1.6",
"@babel/preset-env": "^7.1.6",
"babel-loader": "^8.0.4",
"css-loader": "^1.0.1",
"jquery": ">=2.2.0",
"vue-loader": "^15.4.2",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.5.17",
"webpack": "^4.26.1",
"webpack-cli": "^3.1.2",
"what-input": ">4.1.0"
},
"scripts": {
"build": "webpack"
},
"author": "",
"license": "ISC"
}
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>My Vue app with webpack 4</title>
</head>
<body>
<div id="app">
{{ message }}
<template></template>
</div>
<script src="bundle.js" type="text/javascript"></script>
<script src="build/bundle.js" type="text/javascript"></script>
<script src="/build/bundle.js" type="text/javascript"></script>
<script src="test.js" type="text/javascript"></script>
</body>
</html>
app.js
import Vue from 'vue'
import App from './App.vue'
new Vue({
el: '#app',
render: h => h(App)
})
Я пробовал разные вещи / тренировки, но не могу получитьидея, что не так. Мой bundles.js прекрасно собран, и у меня нет ошибок, нет отсутствующих зависимостей и т. д.
Спасибо за помощь, извините, я довольно новичок в использовании этих инструментов, яЯ пытаюсь сделать что-то вручную, чтобы понять как можно больше.
РЕДАКТИРОВАТЬ: дерево моего проекта
/var/www/html
|-- [Nov 29 5:03] build
| `-- [Nov 29 6:48] bundle.js
|-- [Nov 28 5:44] index.html
|-- [Nov 29 6:48] package.json
|-- [Nov 29 7:23] src
| |-- [Nov 29 6:47] App.vue
| |-- [Nov 29 6:47] app.js
| |-- [Nov 29 6:51] index.html
| `-- [Nov 29 6:29] test.js
|-- [Nov 29 4:45] v8-compile-cache-0
| `-- [Nov 29 6:48] 6.2.414.50
| |-- [Nov 29 6:48] zSvarzSwwwzShtmlzSnode_moduleszSwebpack-clizSbinzScli.js.BLOB
| `-- [Nov 29 6:48] zSvarzSwwwzShtmlzSnode_moduleszSwebpack-clizSbinzScli.js.MAP
`-- [Nov 29 6:36] webpack.config.js