qduoj~前端~二次開發

来源:https://www.cnblogs.com/finch-xu/archive/2018/08/18/9497735.html
-Advertisement-
Play Games

青島大學qdu的onlinejudge是js的寫的前端,框架是vue.js,在nodejs上部署運行,其實整體運行還是建立在docker的容器虛擬環境里,這裡暫時不需要docker。安裝環境是Ubuntu14 64bit 1.安裝一大堆軟體 2.首先fock前端到你的github,這樣以後可以自己改 ...


青島大學qdu的onlinejudge是js的寫的前端,框架是vue.js,在nodejs上部署運行,其實整體運行還是建立在docker的容器虛擬環境里,這裡暫時不需要docker。安裝環境是Ubuntu14-64bit

1.安裝一大堆軟體

sudo apt-get update
sudo apt-get install git vim wget
sudo apt-get install redis-server
sudo apt-get install postgresql
#openssl是後邊部署OJ必須
sudo apt-get install openssl libssl-dev
#這是一個完整的開發工具包,提供了gcc,libc等亂七八糟的工具和軟體
sudo apt-get install build-essential 

2.首先fock前端到你的github,這樣以後可以自己改並且自己推送,然後Git到本地機器。我的虛擬機運行的Ubuntu14-64bit。後邊的命令如果需要許可權就把sudo加上,root用戶就主動忽略吧。

git clone your_url(fork到你自己的github上的url)

3.因為qduoj2.0說明需要nodejs version 6.11,我已開始直接下載的源碼包本地編譯安裝,可是裝好了在後邊的oj部署時候總是出錯,也可能是其他版本的npm沒有刪乾凈,所以最後我用的nvm,這是nodejs的版本管理器,挺方便的。

wget -O- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

等命令運行完安裝好了,需要關閉bash,然後重啟機器,nvm才會生效。

#這裡不要急著運行!最後的這個.0挺有意思,因為要符合nvm的語義,不寫的話就預設安裝6.11.x中最新的那個
nvm install 6.11.0  
#如果上邊的命令安裝太慢就用這個taoao的鏡像安裝!
NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node nvm install 6.11.0 

nvm預設使用的nodejs版本是最近一次安裝的版本,如果你有很多版本可以用下邊的命令來選擇

nvm use 6.11.0
node --version

4.都裝好了,現在可以部署前端了,cd到剛纔的git好的文件夾根目錄,

npm install
#如果這一步過於慢就用taobao的鏡像
npm config set registry https://registry.npm.taobao.org 
npm install
NODE_ENV=development npm run build:dll
#這裡的Your-backend不需要懷疑不需要改!直接這麼寫!!!
export TARGET=http://Your-backend
npm run dev

然後在瀏覽器輸入localhost:8080就出現了前端。

5.如何更改頁面呢,咱們先來看看vue.js框架的網站目錄結構:

| build |
項目構建(webpack)相關代碼

|
| config | 配置目錄,包括埠號等。我們初學可以使用預設的。 |
| node_modules | npm 載入的項目依賴模塊 |
| src |

這裡是我們要開發的目錄,基本上要做的事情都在這個目錄里。裡面包含了幾個目錄及文件:

  • assets: 放置一些圖片,如logo等。
  • components: 目錄裡面放了一個組件文件,可以不用。
  • App.vue: 項目入口文件,我們也可以直接將組件寫這裡,而不使用 components 目錄。
  • main.js: 項目的核心文件。

|
| static | 靜態資源目錄,如圖片、字體等。 |
| index.html | 首頁入口文件,你可以添加一些 meta 信息或統計代碼啥的。 |
| package.json | 項目配置文件。 |
| README.md |

項目的說明文檔,markdown 格式。

|

所以自定義頁面基本就是在src/pages/oj/這裡進行,當然src/裡邊的其他目錄,比如styles/common.less就是css文件,還有static/css/loader.css這個是載入頁面的css。

6.就先這樣,之後我在補上打包成docker鏡像上傳部署的筆記。

參考文檔:

非常感謝以下前輩!

qduoj-二次開發記錄:https://www.finen.top/qduoj-development-record/

vue.js框架講解:http://www.runoob.com/vue2/vue-directory-structure.html

Ubuntu下安裝使用nvm:https://www.linuxidc.com/Linux/2017-01/139024.htm

https://stackoverflow.com/questions/31829198/npm-error-failed-to-fetch-from-registry-http-registry-npmjs-org-sass

https://stackoverflow.com/questions/36467239/nvm-nodejs-org-mirror-is-deprecated-please-use-nodejs-org-mirror

https://www.npmjs.com/package/gulp-iconfont

執行sudo報錯command not found:https://blog.csdn.net/n66040927/article/details/78870627

解決nvm安裝錯誤:https://cnodejs.org/topic/55ab67fe8834fbb55261c4e0

npm使用taobao源:ttps://blog.csdn.net/aerchi/article/details/54582778

https://libraries.io/github/QingdaoU/Minos

前端組件無法渲染:https://github.com/QingdaoU/OnlineJudgeFE/issues/21

網頁動態背景隨滑鼠變換的線條:https://www.cnblogs.com/qq597585136/p/7019755.html

https://usermanual.wiki/Document/Instructions.1857041035.pdf

再次感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • UI的描述 對於 應用程式中,所有用戶界面元素都是由 和`ViewGroup View ViewGroup View ViewGroup`對象的佈局容器! 為我們提供了 和`ViewGroup`的兩個子類的集合,提供常用的一些輸入控制項(比如按鈕,圖片和文本域等)和各種各樣的佈局模式(比如線程佈局,相 ...
  • 前言 lodash受歡迎的一個原因,是其優異的計算性能。而其性能能有這麼突出的表現,很大部分就來源於其使用的演算法——惰性求值。 本文將講述lodash源碼中,惰性求值的原理和實現。 一、惰性求值的原理分析 惰性求值(Lazy Evaluation),又譯為惰性計算、懶惰求值,也稱為傳需求調用(cal ...
  • 五層網路模型 簡介 互聯網的實現,依托於網路協議。網路協議又分為好幾層,關於如何分層有過很多爭論,比較受人認可的有五層模型、七層模型、四層模型。今天我們就來講講五層網路模型。 從名字就可以看出來,五層網路模型將網路協議分為五層,每層都有對應的一些網路協議。從上到下分別是: 應用層 傳輸層 網路層 數 ...
  • 1 2 3 4 5 6 wangEditor上傳圖片到伺服器 7 8 9 10 11 12 13 14 15 16 119 120 121 ...
  • 使用html+css+js實現彈球游戲 效果圖: 代碼如下,複製即可使用: 如果您有更好的方法或更多的功能,可以和我們大家一起分享哦,如有錯誤,歡迎聯繫我改正,非常感謝!!! ...
  • 1.模態框案例 需求: 打開網頁時有一個普通的按鈕,點擊當前按鈕顯示一個背景圖,中心並彈出一個彈出框,點擊X的時候會關閉當前的模態框 代碼如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style t ...
  • 由於近期的項目中出現了不規則的邊框和圖形, 所以重新溫習一下CSS3的圖形繪製。。。樣式繪製的圖形比圖片的性能要好,體驗更佳,關鍵一點是更加有趣! 以下幾個例子主要是運用了css3中border、bordr-radius、transform、偽元素等屬性來完成的,我們先瞭解下它們的基本原理。 bor ...
  • wangEditor-基於javascript和css開發的 Web富文本編輯器, 輕量、簡潔、易用、開源免費 wangEditor基本配置 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <tit ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...