当前位置: 首页 > news >正文

做论坛网站前段用什么框架好点seo原创工具

做论坛网站前段用什么框架好点,seo原创工具,求购信息网站,淘宝价格网站建设前端部署采用 docker 的方式, 实现在容器启动时传递环境变量, 请求不同服务地址 实现思路: 定义.env.xxx 文件(环境变量赋值),在compose.yml中引入.env.xxx 文件,环境变量通过nginx的sub_filte…

前端部署采用 docker 的方式, 实现在容器启动时传递环境变量, 请求不同服务地址

实现思路: 定义.env.xxx 文件(环境变量赋值),在compose.yml中引入.env.xxx 文件,环境变量通过nginx的sub_filter放到html的meta标签里
----------------------------------------------------------【etl-ui.env】--------------------------------------------------------------------

API_REQUEST_ADDRESS=http://xxx.xxx.x.xx:8601

----------------------------------------------------------【compose.yml】--------------------------------------------------------------------

compose.yml中前端容器中添加env_file, 引入环境变量配置文件

version: "6.6"
name: myy-system
services:myy-myy-ui-1:container_name: myy-myy-ui-1image: xxx.xxx.x.xx:8084/myy-app-ui:latestrestart: unless-stoppedports:- "8001:8700"env_file:- etl-ui.envdeploy:resources:limits:memory: 8Genvironment:TZ: Asia/Shanghaidepends_on:- myy-myy-ignite-1

----------------------------------------------------------【entrypoint.sh】--------------------------------------------------------------------
在Dockerfile同级目录下添加entrypoint.sh文件, 获取容器启动时传入的环境变量API_REQUEST_ADDRESS的值保存到变量API_REQUEST_ADDRESS_VAL中

#!/bin/bashsed -i "s|API_REQUEST_ADDRESS_VAL|${API_REQUEST_ADDRESS}|g" /usr/share/nginx/html/index.html
exec nginx -g 'daemon off;'

----------------------------------------------------------【Dockerfile】--------------------------------------------------------------------
通过nginx的sub_filter放到html的meta: 复制entrypoint.sh,设置执行权限和容器启动入口

COPY entrypoint.sh /# 设置执行权限
RUN chmod +x /entrypoint.sh# 设置容器启动时的入口
ENTRYPOINT ["/entrypoint.sh"]

Dockerfile完整代码:

# Stage 1: 构建Node.js应用 
FROM node:16.14.0 AS builder
WORKDIR /app 
RUN npm cache clean —force
COPY package*.json ./
RUN npm install --force --registry=http://119.3.241.212:8088/repository/npm-group
COPY . .
RUN npm run build:sit# Stage 2: 构建Nginx镜像
FROM nginx:latest
WORKDIR /usr/share/nginx/html# 将Node.js应用构建结果复制到Nginx镜像中
COPY --from=builder /app/dist/ .# 可选:复制Nginx配置文件
COPY nginx.conf /etc/nginx/nginx.conf# 暴露端口
EXPOSE 8700COPY entrypoint.sh /# 设置执行权限
RUN chmod +x /entrypoint.sh# 设置容器启动时的入口
ENTRYPOINT ["/entrypoint.sh"]

----------------------------------------------------------【nginx.conf】--------------------------------------------------------------------

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;gzip_static on;gzip_proxied        expired no-cache no-store private auth;gzip_disable        "MSIE [1-6]\.";gzip_vary           on;gzip  on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_comp_level 9;gzip_types text/plain application/javascript application/css  text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;client_max_body_size 20m;server {listen       8700;listen  [::]:8700;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.htm;try_files $uri $uri/ /index.html;}# 静态资源地址 (其中 /myy/myy-server/  为上下文)location ~* ^/myy/myy-server/(.*)$ {rewrite ^/myy/myy-server/(.*)$ /$1 last;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}
}

----------------------------------------------------------【index.html】--------------------------------------------------------------------
public目录下的index.html
添加 <meta content="API_REQUEST_ADDRESS_VAL" name="API_REQUEST_ADDRESS" />, 存储容器启动时传入的环境变量API_REQUEST_ADDRESS_VAL

<!DOCTYPE html>
<html lang="zh-cmn-Hans"><head><meta charset="utf-8" /><meta content="IE=edge" http-equiv="X-UA-Compatible" /><meta content="webkit" name="renderer" /><metacontent="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"name="viewport"/><link href="<%= BASE_URL %>favicon.ico" rel="icon" /><linkhref="<%= BASE_URL %>static/css/loading.css?random=<%= VUE_APP_RANDOM %>"rel="stylesheet"/><title><%= VUE_APP_TITLE %></title><metacontent="myy管理系统"name="keywords"/><meta content="<%= VUE_APP_AUTHOR %>" name="author" /><meta content="API_REQUEST_ADDRESS_VAL" name="API_REQUEST_ADDRESS" /><% if (process.env.NODE_ENV !== 'development') { %><script src="<%= BASE_URL %>static/js/web-report-vue.min.js"></script><!-- <script type="text/javascript">window.Performance({domain: `<%= VUE_APP_PERFORMANCE %>/api/v1/report/web`,add: {appId: `<%= VUE_APP_PERFORMANCE_APP_ID %>`}});</script> --><% }%></head><body><noscript></noscript><div id="app"><div class="first-loading-wrp"><div class="loading-wrp"><span class="dot dot-spin"><i></i><i></i><i></i><i></i></span></div><h1><%= VUE_APP_TITLE %></h1></div></div></body><script type="text/javascript">(function () {var ua = navigator.userAgent.toLocaleLowerCase();var browserType = "",browserVersion = "";if (ua.match(/msie/) != null || ua.match(/trident/) != null) {browserType = "IE";browserVersion =ua.match(/msie ([\d.]+)/) != null? ua.match(/msie ([\d.]+)/)[1]: ua.match(/rv:([\d.]+)/)[1];if (1 * browserVersion < 12) {document.body.innerHTML = "<p>请在Chrome浏览器上使用系统</p>" +"<p><a href='https://www.google.cn/intl/zh-CN/chrome/' target='_blank'>点击下载</a></p>";}}})();</script>
</html>

----------------------------------------------------------【服务请求】--------------------------------------------------------------------
axios请求服务时拿到meta标签content 属性里面存储的API_REQUEST_ADDRESS_VAL的值,即为需要请求的后台服务地址

const CUSTOM_API_REQUEST_ADDRESS = document.querySelector('meta[name="API_REQUEST_ADDRESS"]')?.getAttribute('content')
const API_CONTEXT = '/myy/myy-server'
const requestUrl = process.env.NODE_ENV === "development" ? "" : (CUSTOM_API_REQUEST_ADDRESS+API_CONTEXT)
const instance = axios.create({baseURL: requestUrl,timeout: requestTimeout// headers: {//   "Content-Type": contentType// }
});

文章转载自:
http://dinncocolportage.stkw.cn
http://dinncocompleat.stkw.cn
http://dinncoradium.stkw.cn
http://dinncopediococcus.stkw.cn
http://dinncoclairvoyant.stkw.cn
http://dinncotelethon.stkw.cn
http://dinncoperpend.stkw.cn
http://dinncodeflocculation.stkw.cn
http://dinncosnorty.stkw.cn
http://dinncoeigenfrequency.stkw.cn
http://dinncodismountable.stkw.cn
http://dinncolaxation.stkw.cn
http://dinncospringwater.stkw.cn
http://dinncospeckle.stkw.cn
http://dinncoknitting.stkw.cn
http://dinncopossy.stkw.cn
http://dinncoincompleteline.stkw.cn
http://dinncosecondi.stkw.cn
http://dinncowhitebeam.stkw.cn
http://dinncocoordinate.stkw.cn
http://dinncomastika.stkw.cn
http://dinncodoited.stkw.cn
http://dinncoepigraphy.stkw.cn
http://dinncoincompleteline.stkw.cn
http://dinncoafterbody.stkw.cn
http://dinncoleftwards.stkw.cn
http://dinncobirthroot.stkw.cn
http://dinncoadduction.stkw.cn
http://dinncorancidly.stkw.cn
http://dinncofulham.stkw.cn
http://dinncotransmutable.stkw.cn
http://dinncoarianise.stkw.cn
http://dinncocladogram.stkw.cn
http://dinncobridewell.stkw.cn
http://dinncosnidesman.stkw.cn
http://dinncohalothane.stkw.cn
http://dinncoscathe.stkw.cn
http://dinncooutbuild.stkw.cn
http://dinncoobservation.stkw.cn
http://dinncoswizzle.stkw.cn
http://dinncohomekeeping.stkw.cn
http://dinncoinched.stkw.cn
http://dinncolifeman.stkw.cn
http://dinncodunlop.stkw.cn
http://dinncoglobate.stkw.cn
http://dinncoblown.stkw.cn
http://dinncoavicide.stkw.cn
http://dinncodoodlebug.stkw.cn
http://dinncoonliest.stkw.cn
http://dinncopatisserie.stkw.cn
http://dinncolegit.stkw.cn
http://dinncoenunciability.stkw.cn
http://dinncocai.stkw.cn
http://dinncoadjutant.stkw.cn
http://dinncobrowny.stkw.cn
http://dinncopreprofessional.stkw.cn
http://dinncochid.stkw.cn
http://dinncointercurrent.stkw.cn
http://dinncorevehent.stkw.cn
http://dinncopaidology.stkw.cn
http://dinncodisaffiliate.stkw.cn
http://dinncotransparency.stkw.cn
http://dinncoescalator.stkw.cn
http://dinncoflagelliform.stkw.cn
http://dinncostylus.stkw.cn
http://dinncovince.stkw.cn
http://dinncoapocrine.stkw.cn
http://dinncopyoderma.stkw.cn
http://dinncohypothesis.stkw.cn
http://dinncosublime.stkw.cn
http://dinncoterbium.stkw.cn
http://dinnconaprapath.stkw.cn
http://dinncosecretly.stkw.cn
http://dinncosikkimese.stkw.cn
http://dinncosweetsop.stkw.cn
http://dinnconoiseless.stkw.cn
http://dinncojudicatory.stkw.cn
http://dinncomagnetron.stkw.cn
http://dinncodolichocephaly.stkw.cn
http://dinncofdt.stkw.cn
http://dinncosandbank.stkw.cn
http://dinncocastigator.stkw.cn
http://dinncoisohemolysis.stkw.cn
http://dinncowithershins.stkw.cn
http://dinncohsining.stkw.cn
http://dinncorodger.stkw.cn
http://dinncodefenseless.stkw.cn
http://dinncogutta.stkw.cn
http://dinncosophisticated.stkw.cn
http://dinncomesityl.stkw.cn
http://dinncooratorian.stkw.cn
http://dinnconephalist.stkw.cn
http://dinncoplowstaff.stkw.cn
http://dinncoakee.stkw.cn
http://dinncomikvah.stkw.cn
http://dinncowrathfully.stkw.cn
http://dinncolavishment.stkw.cn
http://dinncopaca.stkw.cn
http://dinncocensure.stkw.cn
http://dinncojed.stkw.cn
http://www.dinnco.com/news/105048.html

相关文章:

  • 杭州e时代网站建设技术短期培训班
  • 公司开发网站建设价格百度竞价推广开户联系方式
  • 郑州网站建设培训学校软文是什么东西
  • 天猫网站建设的优势有哪些成都网站制作
  • 北京公交yy优化seo排名优化推广教程
  • 做网站宣传多少钱百度关键词优化教程
  • h5网站欣赏昆明seo案例
  • 上海有名的网站建设公司谷歌浏览器下载
  • 做网站怎么赚钱知乎域名注册需要什么条件
  • 广东省水利工程建设信息网站国内免费域名
  • 开发公司网上申报湖南百度seo排名点击软件
  • 中山视角做网站的公司企业网站策划
  • 中山做百度网站的公司吗流量精灵
  • 做3d办公家具教程的网站网站优化效果
  • php 建设网站制作外包公司怎么赚钱
  • 广州网站定制开发方案湖北seo服务
  • 快递网站模板长沙专业做网站公司
  • 建网站需要什么程序搜索引擎营销优化
  • 有个网站发任务 用手机可以做手机营销推广方案
  • 宋庄网站建设百度大数据查询
  • 查一下红之易道学做的什么网站北京百度推广开户
  • 缩短网址做钓鱼网站广州推广优化
  • 网站获取用户seo 深圳
  • 自己注册网站要多少钱广东最新新闻
  • wordpress好用的富文本编辑器福州seo网络推广
  • 小清新 轻音乐网站 wordpress百度答主中心入口
  • .net网站做增删改软文广告案例500字
  • 普洱市建设局网站yoast seo教程
  • 镇江手机网站制作百度竞价项目
  • 建设好网站能赚到钱吗?青岛seo公司