Compare commits
2 Commits
SEO_enhanc
...
310bec2d74
| Author | SHA1 | Date | |
|---|---|---|---|
| 310bec2d74 | |||
| 8ac13f6360 |
3
.gitignore
vendored
Executable file → Normal file
@@ -21,3 +21,6 @@ pnpm-debug.log*
|
|||||||
*.njsproj
|
*.njsproj
|
||||||
*.sln
|
*.sln
|
||||||
*.sw?
|
*.sw?
|
||||||
|
|
||||||
|
#dockerfile
|
||||||
|
dockerfile
|
||||||
|
|||||||
25
Dockerfile
@@ -1,25 +0,0 @@
|
|||||||
# 1. Build
|
|
||||||
FROM node:20-alpine AS build
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
COPY package*.json ./
|
|
||||||
RUN npm install
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
RUN npm run build
|
|
||||||
|
|
||||||
# 2. Serveur nginx
|
|
||||||
FROM nginx:alpine
|
|
||||||
|
|
||||||
# Supprime la config par défaut
|
|
||||||
RUN rm /etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
# Ajoute ta config
|
|
||||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
# Copie le build
|
|
||||||
COPY --from=build /app/dist /usr/share/nginx/html
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
||||||
0
babel.config.js
Executable file → Normal file
37
dockerfile
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# Étape 1 : Construction (Build)
|
||||||
|
FROM node:20-slim AS build-stage
|
||||||
|
|
||||||
|
# Définit le dossier de travail
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copie les fichiers de dépendances
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
# Installe les dépendances
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Copie le reste des fichiers du projet
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Construit l'application pour la production
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# Étape 2 : Serveur de production (Nginx)
|
||||||
|
FROM nginx:stable-alpine AS production-stage
|
||||||
|
|
||||||
|
# Copie les fichiers compilés depuis l'étape de build
|
||||||
|
COPY --from=build-stage /app/dist /usr/share/nginx/html
|
||||||
|
|
||||||
|
# Ajoute une configuration Nginx simple pour gérer le routage Vue (SPA)
|
||||||
|
RUN echo 'server { \
|
||||||
|
listen 80; \
|
||||||
|
location / { \
|
||||||
|
root /usr/share/nginx/html; \
|
||||||
|
index index.html; \
|
||||||
|
try_files $uri $uri/ /index.html; \
|
||||||
|
} \
|
||||||
|
}' > /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
10
htaccess/.htaccess
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{SERVER_PORT} !=443
|
||||||
|
RewriteRule ^(.*)$ https://www.raffiskender.com/$1 [R=301,L]
|
||||||
|
RewriteBase /
|
||||||
|
RewriteRule ^index\.html$ - [L]
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule . /index.html [L]
|
||||||
|
</IfModule>
|
||||||
0
jsconfig.json
Executable file → Normal file
19
nginx.conf
@@ -1,19 +0,0 @@
|
|||||||
server {
|
|
||||||
listen 8080;
|
|
||||||
|
|
||||||
server_name localhost;
|
|
||||||
|
|
||||||
root /usr/share/nginx/html;
|
|
||||||
index index.html;
|
|
||||||
|
|
||||||
# SPA Vue → fallback obligatoire
|
|
||||||
location / {
|
|
||||||
try_files $uri $uri/ /index.html;
|
|
||||||
}
|
|
||||||
|
|
||||||
# cache des assets (optionnel mais recommandé)
|
|
||||||
location /assets/ {
|
|
||||||
expires 1y;
|
|
||||||
add_header Cache-Control "public, immutable";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
package-lock.json
generated
Executable file → Normal file
0
package.json
Executable file → Normal file
0
public/favicon.ico
Executable file → Normal file
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
0
public/image.ico
Executable file → Normal file
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
2
public/index.html
Executable file → Normal file
@@ -4,9 +4,7 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
<meta name="description" content="Here is Raffi's portfolio. It shows who I am and showcases some of my projects.">
|
|
||||||
<link rel="icon" href="<%= BASE_URL %>image.ico">
|
<link rel="icon" href="<%= BASE_URL %>image.ico">
|
||||||
|
|
||||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
0
src/App.vue
Executable file → Normal file
0
src/Deprecated/1000_F_61701485_5SzZENMxHmd4n7oQZuqTRXcjqEgZkkIg.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 477 KiB After Width: | Height: | Size: 477 KiB |
0
src/Deprecated/Card.vue
Executable file → Normal file
0
src/Deprecated/Card_WhoAmI.vue
Executable file → Normal file
0
src/Deprecated/Cards.vue
Executable file → Normal file
0
src/Deprecated/MenuCards.vue
Executable file → Normal file
0
src/Deprecated/OldMenu.vue
Executable file → Normal file
0
src/Deprecated/Prez.vue
Executable file → Normal file
0
src/Deprecated/back.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
0
src/Deprecated/face.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
0
src/assets/CV-favicon.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
0
src/assets/MaPhoto.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
0
src/assets/arrow up.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
0
src/assets/arrow-list.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
0
src/assets/bulle.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
0
src/assets/burger.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
0
src/assets/by.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
0
src/assets/images/LDC/LDC_screenshot_1.png
Executable file → Normal file
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
0
src/assets/images/LDC/LDC_screenshot_2.png
Executable file → Normal file
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
0
src/assets/images/LDC/LDC_screenshot_3.png
Executable file → Normal file
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
0
src/assets/images/pop/Screenshot_pop1.webp
Executable file → Normal file
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
src/assets/images/pop/Screenshot_pop2.webp
Executable file → Normal file
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
0
src/assets/images/pop/Screenshot_pop3.webp
Executable file → Normal file
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
0
src/assets/images/pop/back.webp
Executable file → Normal file
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
0
src/assets/lego_bridge.png
Executable file → Normal file
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB |
0
src/assets/legos_maison.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 277 KiB |
0
src/assets/legos_maison2.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
0
src/assets/legos_vrac.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
0
src/assets/legos_vrac.png
Executable file → Normal file
|
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 258 KiB |
0
src/assets/legos_vrac_solo.png
Executable file → Normal file
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
0
src/assets/legos_vrac_solo2.png
Executable file → Normal file
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
0
src/assets/mailbox.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
0
src/assets/maison.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
0
src/assets/meme.png
Executable file → Normal file
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
0
src/assets/meme1.png
Executable file → Normal file
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
0
src/assets/memeWink.png
Executable file → Normal file
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
0
src/assets/mika-signe.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
0
src/assets/networks.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
0
src/assets/points.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
0
src/assets/portfolio-mini.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
0
src/assets/question.png
Executable file → Normal file
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
0
src/assets/question3.png
Executable file → Normal file
|
Before Width: | Height: | Size: 843 KiB After Width: | Height: | Size: 843 KiB |
0
src/assets/questionSolo.png
Executable file → Normal file
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
0
src/assets/raffi.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
0
src/assets/vecteezy_set-of-hand-drawn-question-marks-doodle-questions-marks_6058847.jpg
Executable file → Normal file
|
Before Width: | Height: | Size: 420 KiB After Width: | Height: | Size: 420 KiB |
0
src/components/Burger.vue
Executable file → Normal file
0
src/components/Button.vue
Executable file → Normal file
0
src/components/Footer.vue
Executable file → Normal file
0
src/components/Footer_1.vue
Executable file → Normal file
0
src/components/Menu.vue
Executable file → Normal file
0
src/components/Modal.vue
Executable file → Normal file
0
src/components/Name.vue
Executable file → Normal file
0
src/components/Spinner.vue
Executable file → Normal file
0
src/ici.txt
Executable file → Normal file
0
src/main.js
Executable file → Normal file
0
src/reset.css
Executable file → Normal file
9
src/services/form.js
Executable file → Normal file
@@ -5,20 +5,17 @@ export const formService =
|
|||||||
// Propriété qui stocke la BASE URL de notre API
|
// Propriété qui stocke la BASE URL de notre API
|
||||||
//base_url : "http://192.168.42.124/projets_wordpress/BOPortfolio/wordpress/wp-json/",
|
//base_url : "http://192.168.42.124/projets_wordpress/BOPortfolio/wordpress/wp-json/",
|
||||||
//base_url : "http://192.168.1.41/projets_wordpress/BOPortfolio/wordpress/wp-json/",
|
//base_url : "http://192.168.1.41/projets_wordpress/BOPortfolio/wordpress/wp-json/",
|
||||||
base_url : "https://bo-portfolio.raffiskender.com/wp-json/",
|
base_url : "https://orange-firefly-f5a4.raffiskender.workers.dev/",
|
||||||
//base_url : "http://localhost/projets_wordpress/BOPortfolio/wordpress/wp-json/",
|
//base_url : "http://localhost/projets_wordpress/BOPortfolio/wordpress/wp-json/",
|
||||||
|
|
||||||
// Retrieve data from backend
|
// Retrieve data from backend
|
||||||
async sendMessage(token, payload)
|
async sendMessage(token, payload)
|
||||||
{
|
{
|
||||||
//console.log(token, payload);
|
//console.log(token, payload);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const response = await axios.post(
|
const response = await axios.post(
|
||||||
this.base_url + "bo-portfolio/v1/submitForm",
|
this.base_url,
|
||||||
{
|
{
|
||||||
token: token,
|
token,
|
||||||
json: payload
|
json: payload
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
0
src/stores/burger.js
Executable file → Normal file
0
src/style/colors.scss
Executable file → Normal file
0
src/style/shared_old.scss
Executable file → Normal file
0
src/style/widths.scss
Executable file → Normal file
0
src/views/404.vue
Executable file → Normal file
1
src/views/Contact.vue
Executable file → Normal file
@@ -59,7 +59,6 @@ const onSubmit = () => {
|
|||||||
{action: 'submit'})
|
{action: 'submit'})
|
||||||
.then( async (token) => {
|
.then( async (token) => {
|
||||||
const response = await formService.sendMessage(token, payload)
|
const response = await formService.sendMessage(token, payload)
|
||||||
//console.log(response)
|
|
||||||
if (response === true){
|
if (response === true){
|
||||||
awaiting.value = false;
|
awaiting.value = false;
|
||||||
name.value = '';
|
name.value = '';
|
||||||
|
|||||||