張吉,李曉潔,周誼霞,馬俊,楊想紅,劉金芳
(1.貴州民族大學(xué),貴州 貴陽;2.貴州中醫(yī)藥大學(xué),貴州 貴陽;3.貴州財(cái)經(jīng)大學(xué),貴州 貴陽;4.泰州職業(yè)技術(shù)學(xué)院,江蘇 泰州)
新冠疫情造成學(xué)生不能返校需要居家學(xué)習(xí)給線上學(xué)習(xí)帶來了井噴式需求,同時(shí)線上教學(xué)也接受空前的實(shí)戰(zhàn)檢驗(yàn)。為響應(yīng)中央與教育部的停課不停學(xué)的號(hào)召,各類院?;旧隙疾捎眠^線上教學(xué)模式。評(píng)價(jià)線上、線下教學(xué)的好壞,最重要的指標(biāo)是師生的反映。鄔大光、李文等對(duì)全國(guó)334所高校、13997名教師、256504名學(xué)生進(jìn)行了調(diào)研發(fā)現(xiàn):教學(xué)平臺(tái)功能不完善是當(dāng)前最為緊迫的問題[1]。課程平臺(tái)功能不完善體現(xiàn)在多個(gè)方面。首先體現(xiàn)在對(duì)基礎(chǔ)的PPT、PDF、MP3/MP4格式的數(shù)字、影像等資源中的部分功能支持不完善。例如:動(dòng)畫是教學(xué)課件中的常規(guī)內(nèi)容,也是教師為了講述重點(diǎn)、難點(diǎn)知識(shí)采用的方法之一,目前學(xué)習(xí)通等平臺(tái)的現(xiàn)有功能并不能支持PPT課件中的動(dòng)畫播放,在線下教學(xué)過程中,教師可采用動(dòng)畫形式進(jìn)行教學(xué),但將課件傳至平臺(tái),有動(dòng)畫的頁面很多信息被覆蓋,只呈現(xiàn)一個(gè)圖層,無法實(shí)現(xiàn)教學(xué)目標(biāo)。其次體現(xiàn)在訓(xùn)練模塊。例如:作業(yè)、考試等模塊中,醫(yī)學(xué)類護(hù)士資格證考試中固定題型——公用題干的選擇題學(xué)習(xí)通目前也不支持,因此無法在平臺(tái)上設(shè)置此類選擇題,與職業(yè)資格證書考試形式無法匹配。最后,在建筑工程、醫(yī)學(xué)、體育等領(lǐng)域,對(duì)新興的教學(xué)手段和方法支持力度還不夠。
教師根據(jù)學(xué)科特點(diǎn)構(gòu)建符合課程特色的平臺(tái)可提升教學(xué)效果。在Forge、BIMFace等三維Web端渲染引擎基礎(chǔ)上進(jìn)行二次開發(fā),在3dMax、Revit、Lumion軟件中完成建模后將模型轉(zhuǎn)換成三維渲染引擎所接受的格式,可以爆炸圖方式對(duì)教學(xué)模型進(jìn)行分解展示。采用智能手機(jī)對(duì)教學(xué)模型進(jìn)行拍照,結(jié)合Three.js將360度/720度全景技術(shù)引入到課教學(xué)當(dāng)中,可對(duì)復(fù)雜建筑節(jié)點(diǎn)、構(gòu)件內(nèi)部的鋼筋構(gòu)造進(jìn)行交互式查看,對(duì)人體解剖學(xué)中的器官構(gòu)造、體操/武術(shù)動(dòng)作做全方位展示。
教材+二維碼的線下與線上結(jié)合目前是主流,根據(jù)多門課程的關(guān)聯(lián)性建立完善的知識(shí)圖譜是大勢(shì)所趨,而現(xiàn)有線上教育平臺(tái)資源如大學(xué)慕課是不能完全支持上述教學(xué)手法,須依托于教師自主開發(fā)符合自身特色的線上平臺(tái)。
此外,大數(shù)據(jù)時(shí)代應(yīng)充分利用數(shù)據(jù)分析提高教學(xué)效率。建設(shè)基于Web技術(shù)的線上平臺(tái),通過匿名發(fā)言打通學(xué)生和老師之間的“通訊障礙”。學(xué)生在線上平臺(tái)發(fā)起提問后,平臺(tái)自動(dòng)將問題收集成庫(kù),并對(duì)問題庫(kù)進(jìn)行數(shù)據(jù)分析與挖掘,基于Python的jieba庫(kù)進(jìn)行分詞統(tǒng)計(jì),得出學(xué)生的高頻問題。按搜索頻次由高到低對(duì)問題進(jìn)行排序,教研組首先針對(duì)高頻問題做出回答,從而做到有的放矢,提高教學(xué)效率。學(xué)生再作出評(píng)價(jià)或追問,直至弄清楚全部概念及原理、深層次的知識(shí)間內(nèi)在聯(lián)系。疫情就全世界范圍而言,仍處在一個(gè)不穩(wěn)定期,新冠肺炎也被醫(yī)學(xué)專家評(píng)價(jià)為“一個(gè)被嚴(yán)重低估的病毒”。因此,在后疫情時(shí)代,無論從疫情的不穩(wěn)定狀態(tài)需要為教學(xué)做好充足準(zhǔn)備而言,還是從線上教學(xué)改革而言,搭建符合課程特色的平臺(tái)都是非常重要的事情。
開發(fā)一套線上課程教學(xué)平臺(tái),涉及一系列關(guān)鍵技術(shù),包含系統(tǒng)架構(gòu)、開發(fā)環(huán)境搭建、前端頁面、后端頁面與服務(wù)器、數(shù)據(jù)庫(kù)、域名、公網(wǎng)IP及內(nèi)網(wǎng)穿透等,具體涉及內(nèi)容如下。
系統(tǒng)架構(gòu)統(tǒng)籌平臺(tái)的各個(gè)環(huán)節(jié)以及環(huán)節(jié)之間的通訊機(jī)制。在全球Python語言盛行的形式下[2],對(duì)于非計(jì)算機(jī)專業(yè)的教師而言,采用基于Django[3]或Flask[4]平臺(tái)框架部署平臺(tái)架構(gòu),具備可行性。相比Django,F(xiàn)lask屬于輕量級(jí)的開發(fā)框架,許多應(yīng)用在需要在開發(fā)過程中進(jìn)行擴(kuò)展。而Django屬于重量級(jí)的框架,原生功能比較齊全,易于開發(fā)出全面、穩(wěn)定的企業(yè)級(jí)的網(wǎng)站。目前采用Django更適合開發(fā)一成套完整的教學(xué)平臺(tái)。
(1)Django具有開源、免費(fèi)、易用的特點(diǎn)。Django是一個(gè)開源框架,基于目前最為流行的計(jì)算機(jī)編程語言Python研發(fā)而成。該平臺(tái)框架具有編程環(huán)境易于搭建、代碼量少、開發(fā)效率高的特點(diǎn)。例如調(diào)試工具不同于傳統(tǒng)C/C++語言采用的visual studio,Java采用的Eclipse等,Python的IDLE下載及安裝配置過程相當(dāng)簡(jiǎn)單,安裝包也屬于輕量級(jí)。若需第三方庫(kù)時(shí),在網(wǎng)絡(luò)暢通的情況下,可通過pip等命令實(shí)時(shí)安裝加載即可(開源免費(fèi)編輯器VScode,Jupyter Notebook,及商用pycharm均可作為調(diào)試工具)。入門門檻低且容易掌握,不至于出現(xiàn)非計(jì)算機(jī)專業(yè)人士做線上課程過程中,止步于開發(fā)環(huán)境的搭建階段。
(2)Django的編程理念先進(jìn)。采用當(dāng)今較流行的網(wǎng)絡(luò)平臺(tái)架構(gòu)模型MVC,M代表Model,V代表View,C代表Control,主張將前后端進(jìn)行分離解耦。此外,因其對(duì)基礎(chǔ)網(wǎng)頁編程功能函數(shù)做了大量的二次封裝,面向?qū)ο缶幊淌址ㄈ绶庋b、繼承、多態(tài)實(shí)現(xiàn)起來相對(duì)比較容易,采用{% extends xxx %}、{% block xxx %}與{% endblock xxx%}組合即可實(shí)現(xiàn)網(wǎng)頁之間的繼承,頁面頭部、左側(cè)樹形菜單、底部等區(qū)域不需要重復(fù)編寫。
(3)Django的工作流程清晰。從瀏覽器輸入網(wǎng)絡(luò)課程的網(wǎng)址發(fā)送網(wǎng)頁請(qǐng)求request之后,根據(jù)協(xié)議類型(目前主要用http,加密要求高的采用https),選用DNS域名解析,將域名轉(zhuǎn)換成IP地址,然后經(jīng)過網(wǎng)絡(luò)連接訪問對(duì)應(yīng)的Web服務(wù)器[5]。通過路由文件urls.py決定由哪個(gè)視圖函數(shù)接收瀏覽器的請(qǐng)求,在views.py中采用Python語言編寫視圖類,通過關(guān)鍵字import導(dǎo)入模型文件models.py中的數(shù)據(jù)類后,在視圖類函數(shù)可實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),作為render函數(shù)的參數(shù)傳遞給模板文件(html文件),再通過render或httpResponse函數(shù),將渲染完成的html模板回送到瀏覽器。以上過程采用基于Django的網(wǎng)絡(luò)框架,通過幾個(gè)簡(jiǎn)單命令即可布置成功,其工作流程框圖如下圖1所示。
圖1 Django框架的工作流程流程圖
采用Django網(wǎng)絡(luò)框架,需先安裝Python與Django兩個(gè)軟件。關(guān)于Python的安裝說明文檔非常豐富全面,在其主頁上https://www.python.org找到Downloads菜單,選擇與電腦操作系統(tǒng)匹配的安裝程序包進(jìn)行下載安裝(非開源程序壓縮包),除蘋果品牌的電腦,可能會(huì)默認(rèn)安裝macOS系統(tǒng),或者是出于獨(dú)特的需求安裝其它的系統(tǒng),如Linux系統(tǒng),目前絕大部分用戶使用的電腦操作系統(tǒng)為Windows 64-bit。適用于Windows系統(tǒng)的Python安裝包大小僅為幾十兆。在Python安裝完成之后,從系統(tǒng)cmd命令窗口采用pip命令安裝Django,完整的pip安裝命令為pip install Django==3.2.8。上述命令中,雙等于號(hào)右側(cè)的3.2.8表示需要安裝到本機(jī)的Django版本號(hào),選擇版本號(hào)時(shí)需注意與Python版本號(hào)適配,不同版本的Python所能支持的Django版本號(hào)在Django主頁的文檔說明中均已列出,目前主流版本的對(duì)應(yīng)關(guān)系如表1所示。
表1 Django與Python相匹配各版本的對(duì)應(yīng)關(guān)系
為了避免版本沖突,或者由于反復(fù)安裝、卸載操作導(dǎo)致的軟件不能正常啟動(dòng),上述兩個(gè)軟件的安裝過程,可在開源集成平臺(tái)Anaconda中完成。在Anaconda的官方網(wǎng)站或國(guó)內(nèi)鏡像中選擇Anconda安裝包進(jìn)行下載安裝(如圖2所示)。Anaconda安裝包內(nèi)置了Python安裝程序,安裝Anaconda并建立環(huán)境(environment),默認(rèn)會(huì)生成一個(gè)base環(huán)境,然后采用conda install Django命令安裝Django,Anaconda可在網(wǎng)絡(luò)上自動(dòng)搜尋與Python匹配的版本進(jìn)行安裝。按上述方法安裝一般可避免版本沖突、反復(fù)安裝導(dǎo)致注冊(cè)表等信息雜亂的問題。
圖2 Anaconda下載頁面局部
安裝完成Django之后,在cmd中通過cd命令切換至將放置網(wǎng)站開發(fā)文件夾的目錄,使用django-admin startproject xxx命令創(chuàng)建名為xxx的項(xiàng)目,該命令會(huì)自動(dòng)生成名稱為xxx的文件夾,xxx文件夾中包含MVC模式Django網(wǎng)站框架所需Python文件,如圖3所示。包含總控、配置、路由等py腳本文件。例如,在settings.py文件中已完成數(shù)據(jù)庫(kù)、應(yīng)用管理、模板路徑、時(shí)區(qū)、界面采用語言種類等宏觀配置內(nèi)容。
圖3 Django網(wǎng)站框架所含Python文件
在項(xiàng)目manage.py文件所在目錄下執(zhí)行cmd命令python manage.py runserver啟動(dòng)Django服務(wù)器。在瀏覽器地址欄中輸入http://127.0.0.1:8000/,若彈出如圖4所示頁面,說明Django開發(fā)環(huán)境已經(jīng)配置成功。
圖4 Django服務(wù)器啟動(dòng)成功頁面
前端頁面即通過瀏覽器查看到的網(wǎng)頁內(nèi)容——標(biāo)題、段落文字、輪播圖片、音視頻、電子書等。每一個(gè)網(wǎng)頁對(duì)應(yīng)著一個(gè)以html為后綴名的文件,大多數(shù)的網(wǎng)站首頁以index.html命名。點(diǎn)擊網(wǎng)頁上的一個(gè)超鏈接或按鈕,將通過href或onclick響應(yīng)事件跳轉(zhuǎn)至另一個(gè)html頁面。前端網(wǎng)頁開發(fā)通常涉及html,css,JavaScript三個(gè)方面的技術(shù)。
Html
主要負(fù)責(zé)網(wǎng)頁內(nèi)容的安排和整體布局,比如網(wǎng)頁的頭部寫課程名稱,中部區(qū)域放置電子教學(xué)資源,底部布置版權(quán)信息、聯(lián)系地址等,網(wǎng)頁中是否采用樹形菜單,以及超鏈接設(shè)置、表單布置均在html文件中進(jìn)行編寫。
CSS
主要負(fù)責(zé)網(wǎng)頁內(nèi)容的具體排版與美化,如字體的大小,圖片框的大小、圖片排列與邊距及顏色調(diào)配等問題,簡(jiǎn)而言之,起調(diào)控網(wǎng)頁美觀的作用。
可采用現(xiàn)有開源樣式控制框架Bootstrap等進(jìn)行樣式設(shè)置,該框架支持的瀏覽器比較全,且不易出現(xiàn)網(wǎng)頁縮放時(shí)頁面溢出等異?,F(xiàn)象。
JavaScript
主要負(fù)責(zé)對(duì)響應(yīng)事件進(jìn)行處理,實(shí)時(shí)監(jiān)聽網(wǎng)頁上的用戶事件,比如用戶鼠標(biāo)單擊、滾動(dòng)縮放事件。一般采用JavaScript編程語言,對(duì)頁面上的表單數(shù)據(jù)(輸入框輸入內(nèi)容,復(fù)選框的選擇狀態(tài))進(jìn)行提取,或直接從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),完成必要的運(yùn)算后,將結(jié)果返回并重新渲染模板html頁面。
以上三部分內(nèi)容可全部寫在一個(gè)html中,但容易導(dǎo)致html文件過長(zhǎng),不利于查閱及維護(hù)代碼,宜分別放置在三個(gè)文件夾中進(jìn)行分類管理。國(guó)內(nèi)外開源代碼托管與協(xié)作平臺(tái)Github、Gitee等上面星標(biāo)多的代碼,絕大部分采用分類管理模式。
前端網(wǎng)頁布局及樣式調(diào)控工作比較繁瑣,在掌握其基本工作原理的前提下,盡量采用低代碼開發(fā)工具,通過可視化拖拽方式完成網(wǎng)頁設(shè)計(jì),大大提高開發(fā)效率,可同時(shí)兼顧平臺(tái)開發(fā)質(zhì)量與速度。
后端一般是指網(wǎng)絡(luò)課程的服務(wù)器端,其主要使用對(duì)象是管理員,主要有兩個(gè)方面的應(yīng)用場(chǎng)景。其一,用戶如學(xué)生從前端網(wǎng)頁發(fā)起提問或上傳了作業(yè)文件,不能一直緩存,須編將其傳入后端并存儲(chǔ)到服務(wù)器的硬盤中。其二,教師在服務(wù)器端可打開管理員(Admin)界面,完成數(shù)據(jù)分析和管控、添加與編輯信息工作。如將教學(xué)PPT、教材PDF、教學(xué)動(dòng)畫/錄像、全景、2D圖紙、3D模型、X線影像、比賽鏡頭回放等教學(xué)資源存入服務(wù)器,供視圖層讀取此類數(shù)據(jù)后對(duì)前端網(wǎng)頁進(jìn)行渲染和更新。
可采用傳統(tǒng)的PHP作為后臺(tái)操作頁面編寫語言[5]。但采用Django網(wǎng)絡(luò)應(yīng)用框架更符合時(shí)代潮流,其后臺(tái)維護(hù)界面的開發(fā)過程十分簡(jiǎn)便,Django封裝了全面的后臺(tái)界面開發(fā)函數(shù),只需Python編程基礎(chǔ)即可開發(fā),適合非計(jì)算機(jī)專業(yè)人士使用[6]。
(1)數(shù)據(jù)庫(kù)。將數(shù)據(jù)比如學(xué)生信息,常見問題及答案等存于數(shù)據(jù)庫(kù)中,數(shù)據(jù)格式更加規(guī)范,用戶搜索數(shù)據(jù)時(shí)的效率會(huì)更高[7]。目前流行的數(shù)據(jù)庫(kù)有Oracle、MySQL、PostgreSQL、MongoDB、Redis、SQLite、NoSQL等,按其特點(diǎn)分為關(guān)系型數(shù)據(jù)庫(kù)(Relation)、鍵-值型數(shù)據(jù)庫(kù)(Key-Value)、文檔數(shù)據(jù)庫(kù)(document)、時(shí)序數(shù)據(jù)庫(kù)(Time series)、圖數(shù)據(jù)庫(kù)(Graphic)。
Django網(wǎng)絡(luò)框架中默認(rèn)配置的數(shù)據(jù)庫(kù)類型為sqlite3,在setting.py中已自動(dòng)完成配置,如下圖5所示。
圖5 Django網(wǎng)絡(luò)框架settings.py文件中自動(dòng)配置數(shù)據(jù)庫(kù)腳本
采用sqlite3作為網(wǎng)絡(luò)課程數(shù)據(jù)庫(kù)時(shí),具有不需額外再執(zhí)行啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器、配置成本低等優(yōu)點(diǎn)。但在數(shù)據(jù)量大的情況下,存在寫入速度慢的缺點(diǎn),此時(shí)可選用關(guān)系型開源數(shù)據(jù)庫(kù)MySQL[8],Django也能友好的支持MySQL。Django提供一系列對(duì)數(shù)據(jù)庫(kù)內(nèi)容進(jìn)行增、刪、查、改函數(shù)。完成數(shù)據(jù)庫(kù)配置后,在項(xiàng)目manage.py文件所在目錄下,連續(xù)執(zhí)行python manage.py makemigrations和Python manage.py migrate命令完成數(shù)據(jù)庫(kù)的遷移。
(2)站點(diǎn)管理員頁面。配置完數(shù)據(jù)庫(kù)后,輸入python manage.py createsuperuser命令創(chuàng)建站點(diǎn)管理員賬號(hào),創(chuàng)建過程需輸入登陸后端所需用戶名、郵箱、密碼信息。在瀏覽器地址欄中輸入http://127.0.0.1:8000/admin/,鍵入用戶名與密碼后登錄后端管理頁面(如圖6所示,在settings.py文件中修改LANGUAGE_CODE=‘enus’為L(zhǎng)ANGUAGE_CODE=‘zh-Hans’可對(duì)界面進(jìn)行漢化),通過可視化UI界面操作如點(diǎn)擊添加按鈕可直觀增加學(xué)生信息數(shù)據(jù),并存入數(shù)據(jù)庫(kù)。在admin.py中根據(jù)課程特色編寫代碼對(duì)后端頁面進(jìn)行擴(kuò)充,還可在models.py中編寫代碼實(shí)現(xiàn)批量導(dǎo)入Excel或word中的內(nèi)容到數(shù)據(jù)庫(kù)。就后端操控頁面開發(fā)簡(jiǎn)潔程度來說,Django是最為方便的網(wǎng)絡(luò)框架之一。
圖6 Django后臺(tái)管理界面
(3)服務(wù)器或虛擬主機(jī)。服務(wù)器根據(jù)用途可分為運(yùn)算型與數(shù)據(jù)型兩大類。運(yùn)算型服務(wù)器,又可稱之為工作站,主要用于高性能的科學(xué)計(jì)算如大型的線性方程組求解,以及基于GPU的機(jī)器學(xué)習(xí)訓(xùn)練等對(duì)數(shù)據(jù)處理速度要求高的場(chǎng)景,對(duì)CPU與顯卡配置參數(shù)要求高。
數(shù)據(jù)型服務(wù)器主要用途是存儲(chǔ)數(shù)據(jù),特點(diǎn)是硬盤空間大,網(wǎng)絡(luò)通道多,且能快速通過互聯(lián)網(wǎng)訪問。
網(wǎng)絡(luò)課程建設(shè)需存儲(chǔ)大量網(wǎng)絡(luò)課程所需展示的資源,如PPT,視頻/動(dòng)畫/錄像,word文檔等,通常具有存儲(chǔ)數(shù)據(jù)量大,訪問數(shù)多的特點(diǎn),宜選擇數(shù)據(jù)型服務(wù)器。服務(wù)器即可通過租用方式獲取,如租用阿里云、騰訊云、百度云、華為服務(wù)器等。租用的服務(wù)器通過“遠(yuǎn)程桌面”的方式訪問,可形象的稱之為虛擬主機(jī)。也可采用教師所在單位的個(gè)人臺(tái)式電腦或筆記本電腦作為服務(wù)器,此時(shí)服務(wù)器在本地。云服務(wù)器與本地服務(wù)器的優(yōu)缺點(diǎn)分析如表2所列。
表2 云服務(wù)器與本地服務(wù)器優(yōu)劣對(duì)比
若選擇租用云服務(wù)器方式,一般由運(yùn)營(yíng)商一并提供公網(wǎng)IP和域名;租用云服務(wù)器時(shí),費(fèi)用與所需硬盤容量的相關(guān),故選用服務(wù)器時(shí)應(yīng)先預(yù)估分析網(wǎng)絡(luò)課程所用數(shù)據(jù)資源的大小,即硬盤空間。尚需綜合考慮流量與網(wǎng)速因素,如帶寬等影響網(wǎng)頁響應(yīng)速度的參數(shù)。此外,對(duì)于保密性要求較高的數(shù)據(jù),尚需明確云服務(wù)器是在國(guó)內(nèi)還是國(guó)外。
在網(wǎng)絡(luò)課程建設(shè)初期,用于調(diào)研用途或項(xiàng)目啟動(dòng)經(jīng)費(fèi)有限時(shí),可采用本地電腦自行搭建服務(wù)器。若采用自己電腦作為服務(wù)器,可采用Nginx等工具完成服務(wù)器部署。
將編寫完成的網(wǎng)站代碼發(fā)布到外網(wǎng),在具備域名的前提下,仍需將域名與本地服務(wù)器上網(wǎng)站代碼建立對(duì)應(yīng)關(guān)系。采用云服務(wù)器商提供域名與服務(wù)器,可在供應(yīng)商的指導(dǎo)下完成。而對(duì)本地服務(wù)器的情況,win7以上系統(tǒng)可通過自帶的IIS實(shí)現(xiàn)將本地電腦變成網(wǎng)絡(luò)服務(wù)器。但設(shè)置過程涉及啟用或關(guān)閉Windows功能、入站規(guī)則、協(xié)議和端口等操作。相對(duì)Nginx、Tomcat、Apache、NodeJS等配置工具而言,要復(fù)雜并且容易出錯(cuò)。對(duì)于非計(jì)算機(jī)專業(yè)的教師而言,選擇Nginx完成服務(wù)器端配置更為合適。
Nginx是一款開源的輕量級(jí)服務(wù)器代理工具,性能穩(wěn)定,并發(fā)能力強(qiáng)、響應(yīng)速度快[9]。搭建Nginx環(huán)境,在其官方主頁下載安裝壓縮包。解壓后雙擊”nginx.exe”即可啟動(dòng)nginx服務(wù)器。啟動(dòng)服務(wù)器后在瀏覽器地址欄中輸入“l(fā)ocalhost:80”進(jìn)行訪問,若彈出如圖7中所示界面,說明Nginx環(huán)境安裝成功。
圖7 Nginx啟動(dòng)成功頁面顯示內(nèi)容
在配置nginx.conf文件中,將server配置參數(shù)端口(listen)指定值為8080、8081等非常規(guī)值,可避免因常規(guī)端口已被占用,導(dǎo)致啟動(dòng)失敗。
將網(wǎng)絡(luò)課程的主頁文件index.html與依賴的css與js文件夾一并拷貝到Nginx安裝包里的html目錄中。此時(shí),在服務(wù)器瀏覽器的地址欄輸入“l(fā)ocalhost:8080”,將打開編寫的網(wǎng)絡(luò)課程的主頁,此時(shí)網(wǎng)頁只能在本地訪問,還需域名與公網(wǎng)IP才能實(shí)現(xiàn)外網(wǎng)訪問。
(1)網(wǎng)絡(luò)域名。域名是一組用點(diǎn)分隔的字符串組成的名字。要實(shí)現(xiàn)網(wǎng)絡(luò)課程能外網(wǎng)訪問,域名是必須要存在的,如同人需要有自己的名字,且域名在全網(wǎng)范圍內(nèi)都不允許重復(fù),如百度的域名為“http://www.baidu.com”。域名除了以.com結(jié)尾以外,還有.net、.org、.cn等形式??筛鶕?jù)課程的名稱自行取定域名,在域名購(gòu)買網(wǎng)上購(gòu)買與查重。不同結(jié)尾形式的域名,其價(jià)格也不同,且有長(zhǎng)期和按年購(gòu)買等多種購(gòu)買方式。在網(wǎng)絡(luò)課程開發(fā)初始階段,可采用花生殼提供的小帶寬免費(fèi)域名,但需額外支付少量運(yùn)維費(fèi)用。
(2)IP地址。大部分非計(jì)算機(jī)專業(yè)教師所理解的IP地址是電腦在局域網(wǎng)內(nèi)的地址。通過cmd命令ipconfig查詢到的iv4地址,為電腦在局域網(wǎng)內(nèi)的IP地址。若需將自建網(wǎng)絡(luò)課程部署成外網(wǎng)可見,僅有局域網(wǎng)內(nèi)的IP地址是不夠的,需要有公網(wǎng)IP地址。
公網(wǎng)IP地址是電腦上網(wǎng)絡(luò)課程服務(wù)器在萬維網(wǎng)上的通訊地址,在全球范圍內(nèi)是唯一的。在某種意義上講,與網(wǎng)絡(luò)域名是等同的,IP地址由一組用點(diǎn)分割的數(shù)字組成,不容易記憶,故通常在瀏覽器中輸入域名進(jìn)行訪問。
電腦的內(nèi)網(wǎng)IP地址通常以192.168.x.x形式,可以重復(fù)。如同某個(gè)街道上房間的門牌號(hào),不同的街道可有相同的門牌號(hào)。但電腦的外網(wǎng)IP,如同xx省xx市xx街道是不能重復(fù)的?;ヂ?lián)網(wǎng)上的電腦通過公網(wǎng)IP進(jìn)行通訊,全球個(gè)人電腦數(shù)量巨大,并不是每臺(tái)電腦都有公網(wǎng)IP,公網(wǎng)IP較少,甚至一所學(xué)校只有一個(gè)到幾個(gè)公網(wǎng)IP。
如能申請(qǐng)到公網(wǎng)IP,將域名解析到公網(wǎng)IP即可實(shí)現(xiàn)外網(wǎng)訪問。
(3)內(nèi)網(wǎng)穿透。如果不能申請(qǐng)到公網(wǎng)IP,可通過NAT內(nèi)網(wǎng)穿透等技術(shù),將本地的電腦映射成外網(wǎng)可以訪問??刹捎没ㄉ鷼ぼ浖?shí)現(xiàn)內(nèi)網(wǎng)穿透,在花生殼官網(wǎng)上下載與電腦操作系統(tǒng)匹配的客戶端安裝源程序包并完成安裝。在內(nèi)網(wǎng)穿透設(shè)置頁面中添加映射,應(yīng)用名稱可指定為網(wǎng)絡(luò)課程名稱,外網(wǎng)域名輸入購(gòu)買或者贈(zèng)送的域名,外網(wǎng)端口選擇動(dòng)態(tài)端口,內(nèi)網(wǎng)主機(jī)指定為127.0.0.1(部分文獻(xiàn)資料建議指定為本機(jī)ipv4地址,經(jīng)實(shí)驗(yàn)失?。?,內(nèi)網(wǎng)端口指定為8080,此端口必須與前文中Nginx配置的端口保持一致,如圖8所示。
圖8 花生殼添加映射頁面
上述配置完成之后,花生殼自動(dòng)完成域名解析,并生成訪問地址,在外網(wǎng)環(huán)境下,從瀏覽器中輸入訪問地址,即可打開網(wǎng)絡(luò)課程首頁。
本文較系統(tǒng)的闡述一成套搭建可從外網(wǎng)訪問的線上課程教學(xué)平臺(tái)的技術(shù)方案。整個(gè)平臺(tái)的搭建方案,對(duì)計(jì)算機(jī)專業(yè)知識(shí)相對(duì)依賴較少,極大程度上的利用現(xiàn)有成果(含開源程序等),成本相對(duì)低廉,開發(fā)進(jìn)度較快。本文作者均為非計(jì)算機(jī)專業(yè)從教人員,深刻的理解框架系統(tǒng)設(shè)計(jì)的難處,對(duì)開發(fā)過程中可能遇到的痛點(diǎn)與知識(shí)盲區(qū)比較清楚,在關(guān)鍵點(diǎn)上的講解更容易讓人理解,但在計(jì)算機(jī)線上課程開發(fā)技術(shù)的認(rèn)識(shí)廣度與深度上有待繼續(xù)的提升與加強(qiáng)。當(dāng)前互聯(lián)網(wǎng)技術(shù)發(fā)展迅猛,涌現(xiàn)出一批低代碼網(wǎng)絡(luò)框架,如阿里宜搭、騰訊微搭和百度智能建站等技術(shù),應(yīng)隨時(shí)跟進(jìn)此類前沿技術(shù),將其應(yīng)用于網(wǎng)絡(luò)課程的建設(shè)。