Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit e69022b6 authored by 65160206's avatar 65160206
Browse files

fix image login

parent 32ff6e4d
No related branches found
No related tags found
No related merge requests found
# Build stage
# 👉 Build stage
FROM node:18 AS builder
WORKDIR /app
# ติดตั้ง dependencies
COPY package*.json ./
RUN npm install
# คัดลอก source code ทั้งหมด
COPY . .
# สร้าง production build
RUN npm run build
# Production stage
# 👉 Production stage
FROM nginx:stable-alpine
# คัดลอกไฟล์ที่ build แล้ว ไปยัง nginx
COPY --from=builder /app/dist /usr/share/nginx/html
# copy nginx config if needed (optional)
# คัดลอก public folder เข้าไปด้วย (เผื่อมีรูปหรือ static อื่นๆ)
COPY public /usr/share/nginx/html
# 🔧 (ถ้ามี custom nginx config)
# COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
npm 0 → 100644
File moved
......@@ -29,26 +29,15 @@ const onSubmit = async () => {
<!-- Login Form -->
<form>
<v-img src="\src\assets\human.png" height="100"></v-img>
<v-img src="./img/human.png" height="100"></v-img>
<br />
<v-form ref="refForm" v-model="form" @submit.prevent="onSubmit">
<v-text-field
v-model="email"
:rules="[required]"
density="compact"
placeholder="User"
prepend-inner-icon="mdi-account"
></v-text-field>
<v-text-field
v-model="password"
:append-inner-icon="visible ? 'mdi-eye-off' : 'mdi-eye'"
:type="visible ? 'text' : 'password'"
density="compact"
placeholder="Enter your password"
prepend-inner-icon="mdi-lock-outline"
:rules="[(v) => !!v || 'Field is required']"
@click:append-inner="visible = !visible"
></v-text-field>
<v-text-field v-model="email" :rules="[required]" density="compact" placeholder="User"
prepend-inner-icon="mdi-account"></v-text-field>
<v-text-field v-model="password" :append-inner-icon="visible ? 'mdi-eye-off' : 'mdi-eye'"
:type="visible ? 'text' : 'password'" density="compact" placeholder="Enter your password"
prepend-inner-icon="mdi-lock-outline" :rules="[(v) => !!v || 'Field is required']"
@click:append-inner="visible = !visible"></v-text-field>
<br />
......@@ -275,6 +264,7 @@ input[type='text']::placeholder {
.underlineHover:hover:after {
width: 100%;
}
*:focus {
outline: none;
}
......@@ -286,5 +276,6 @@ input[type='text']::placeholder {
* {
box-sizing: border-box;
}
/* text field */
</style>
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
vueJsx(),
],
base: './', // ← เพิ่มบรรทัดนี้
plugins: [vue(), vueJsx()],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment