DiscuzQ構建/發布小程序與H5前端


說明

Discuz! Q的小程序與H5前端,基於uni-app開發框架,現支持發行為微信小程序和H5。

使用方法

1. 安裝Discuz! Q

在使用Discuz! Q小程序之前,請先安裝好你的Discuz! Q,具體方法請點擊這里,查看安裝文檔。

2. 准備HBuilderX

  • 將HBuilderX升級到最新版本,如果還沒有,請安裝HbuilderX標准版
  • 安裝uni-app編譯插件
  • 點擊這里,點擊『使用HBuilderX導入插件』,安裝sass編譯插件

3. 准備小程序開發工具

啟動微信開發者工具,打開工具 > 設置 > 安全設置,將服務端口開啟。

4. 建立Discuz! Q項目

如果你使用的是v2.8.1以上的HBuilder X,選擇 文件 > 新建 > 項目 > uni-app > 選擇 Discuz! Q模板

如果你的HBuilder X中看不到Discuz! Q模板,可點擊這里,然后選擇『使用HBuilderX導入插件』

WARNING

項目的路徑中,不能包含中文和標點

5. 修改配置,指向自己的服務器

修改 common/const.js 文件中的以下兩行:

export const DISCUZ_TITLE = "設置為自己小程序的標題"; let host = "設置為自己Discuz! Q的訪問地址,比如https://www.rkb.net/"; 

6. 發行

選擇 發行 > 小程序 - 微信,輸入自己的小程序ID,即可生成微信小程序,並自動在微信開發工具中打開。在微信開發工具中選擇上傳即可。

如果你是開發者,修改了Discuz! Q的前端代碼,想對服務器上的H5頁面進行更新,也可以選擇 發行 > 網站 - H5手機版,生成H5頁面,然后上傳到Discuz! Q的服務器上,覆蓋原public目錄下的index.html和static目錄。Discuz! Q默認的升級和安裝程序中已經包含了最新的H5頁面,普通用戶無需進行這一步操作。

不使用HBuilder構建

如果你對npm工具/H5前端鏈比較熟悉,不想使用HBuilder X,也可以自己通過npm進行構建。

下載小程序/H5前端代碼

請下載最新前端代碼,並解壓縮到一個目錄中。

構建小程序

進入解壓縮后的目錄,修改 .env.production 文件,將其中的服務器指向自己的Discuz! Q地址。

修改src下的manifest.json文件,將其中的小程序ID換成自己的小程序ID

然后執行:

npm config set registry http://mirrors.cloud.tencent.com/npm/
npm install
npm run build:mp-weixin

上傳小程序

通過微信開發工具,打開構建完的小程序目錄,即可上傳

構建與發布H5

如果你是開發者,修改了Discuz! Q的前端代碼,想對服務器上的H5頁面進行更新,可以在解壓縮后的目錄中,執行

npm run build:h5

將生成的文件,上傳到Discuz! Q的服務器上,覆蓋原public目錄下的index.html和static目錄。

Discuz! Q默認的升級和安裝程序中已經包含了最新的H5頁面,普通用戶無需進行這一步操作。

本地調試方法

本地調試小程序或H5,現在只支持npm方式構建。

本地調試小程序方法

基於上面的文檔,下載代碼並執行過npm install之后,先修改 .env.development 文件,將其中的服務器指向自己的Discuz! Q地址,然后運行以下命令調試小程序:

npm run dev:mp-weixin

之后使用微信開發工具,打開構建完的開發版小程序,即可進行源碼級調試。

本地調試H5方法

基於上面的文檔,下載代碼並執行過npm install之后,先修改 .env.development 文件,將其中的服務器指向自己的Discuz! Q地址,然后運行以下命令調試H5:

npm run dev:h5

調試H5的時候,由於H5資源來自本地,但API請求直接指向了遠程的Discuz! Q,可能會遇到跨域訪問的問題,請對Web服務器做相應的配置,允許來自 http://localhost:8080 的跨域訪問。比如Nginx下,在原來的 location / 配置中,加入允許跨域的配置 :

  add_header 'Access-Control-Allow-Origin' 'http://localhost:8080'; location / { if ($request_method = OPTIONS ) { add_header Content-Length 0; add_header Content-Type text/plain; add_header 'Access-Control-Allow-Methods' 'GET, POST, PATCH, DELETE, PUT, OPTIONS'; add_header 'Access-Control-Allow-Origin' 'http://localhost:8080'; add_header 'Access-Control-Allow-Headers' 'Content-Type,Authorization'; return 200; } try_files $uri $uri/ /index.php?$query_string; } 

瀏覽器會在發現是跨域請求的時候,先向目標服務器發送一個OPTIONS請求作為跨域請求的測試(Test Flight),這里的配置會返回給瀏覽器:『允許來自http://localhost:8080的跨域請求,允許使用GET, POST, PATCH, DELETE, PUT, OPTIONS這些方法』


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM