當前位置:首頁 » 網頁前端 » 後端啟動前端沒有資源
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

後端啟動前端沒有資源

發布時間: 2022-10-03 13:00:28

1. 如何在開發時部署和運行前後端分離的JavaWe

在開發中大型的JavaEE項目時,前後端分離的框架逐漸成為業界的主流,傳統的單機部署前後端在同一個項目中的工程項目越來越少。這類JavaWeb項目的後端通常都採用微服務的架構,後端會被分解為諸多個小項目,然後使用bbo+zookeeper或者springCloud來構建微服務,前端則會是一個單獨的項目,前台的請求通過微服務來調用。但是,不同與傳統的web項目,這類前後端分離的項目如何在開發中部署和運行呢?

當前後端分離時,後端項目一定會被載入到tomcat的webapp目錄下面,但是前端的資源院該如何被訪問到呢?這里以tomcat這個中間件為例,探討在開發這類項目的時候,如何讓前後端分離的項目部署並且運行起來,即後端項目部署在tomcat之後如何在運行時訪問靜態資源(非上線部署)。

主要有兩種方案:1.在本地通過Nginx來處理這些靜態資源。2、將靜態資源統一放入一個javaweb應用中,並將自動生成的war包隨後端項目一期丟入tomcat。下面詳細介紹

一、使用Nginx來訪問靜態資源。

在本地安裝nginx並且修改nginx.conf,修改相關配置,將web訪問的埠的資源進行更改,配置如下:

server { listen 80; server_name localhost; charset utf-8; #access_log logs/host.access.log main;
location / { proxy_pass http://tomcat_pool; proxy_redirect off;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|woff|woff2|ttf|eot|map)$ {
root D:Workspacesesop-html; index index.html;
}

listen對象改為你本地的tomcat訪問埠,最下面location中的root改為你前端項目中靜態資源的位置,這樣就可以實現只部署後端的項目就能訪問前端的頁面了。

二、將前端項目轉換為動態的web項目,隨後端項目一起丟入tomcat

這個方案省去了在本地安裝和配置nginx,但是也只適用於開發階段項目的部署運行和調試,真正在生產環境通常前後端項目會部署在不同的伺服器。

  • 如果是Intellij Idea,在導入前端項目之後,右鍵項目 add framework support --> web application,這時將會把前端項目轉換為一個javaweb項目,然後將靜態資源放在生成的web目錄下即可。

  • 如果是eclipse,可以新建一個javaweb項目然後將靜態資源放入web或者webcontent目錄下,或者直接先導入前端項目,然後通過 project facts 將項目轉換為dynamic web項目並勾選 js等相關配置。

  • 然後,運行項目時把後端的war包和前端的war包一同添加到 deployment中運行即可。

2. 如何處理好前後端分離的 API 問題

意義很大,但是你的問題本身認識有偏差。

對於前後端分離,認識上有個誤區,那就是很多人自稱:老早就分離了,全AJAX,使用Angular或者什麼什麼就可以了。

這個說法是不合適的,打個比方,別人問的是「如何解決家禽把蛋生在水草邊的問題?」,但實際上人家養的是鴨子,答題的卻是養雞的,所以回答「不讓去水邊就行了」,這顯然不在點子上。

這兩年業界說的前後端分離,是限於偏展示類的系統(用A代替),而不是應用、管控類Web項目(用B代替),在B類項目里,前後端是天然分離的,對此,除了少部分後端開發人員,基本所有人的認識都是一致的。上一段中這樣回答的人一般都是只做B類項目,在B類項目里,前後端分離是共識,不需要討論。

那麼,剩下的問題就是討論A類項目的前後端分離了。這個問題的核心在什麼地方呢,在於模板的與數據結合的位置,以及,模板的控制權在誰手裡。經過這兩年的討論,基本上我們可以達成的共識就是:模板應當由前端人員去控制,主要原因有兩方面:

- 性能優化(尤其是外部資源的管理與發布,請求合並等等)
- 協作的順暢性(已形成模板的界面片段的返工等問題)

那麼,模板到底應該在什麼地方跟數據結合?

這個問題就比較折騰了,有部分人嘗試像B類項目那樣,使用js模板,然後在瀏覽器端執行,這是存在一些問題的,比如說seo不友好,首屏性能不夠,尤其對於首頁DOM量很大的電商類網站,差距很明顯。

所以還是得把主要的模板放在服務端來執行。在這個過程中,阿里作了一些嘗試,那就是引入Node層,在這一層把模板與數據進行合成,然後瀏覽器拿到的就是生成好的HTML了,但也不是所有HTML都是這么生成好的,還是會有一些內容等到了瀏覽器之後,再用js去載入和生成。

3. 前端埠是怎麼交互後端

隨著互聯網的高速發展以及IT開發技術的升級,前後端分離已成為互聯網項目開發的業界標准使用方式。在實際工作中,前後端的介面聯調對接工作量佔Web前端人員日常工作的30%-50%,甚至會更高。

首先我們要知道為什麼前後端要交互

為什麼要前後端分離?

把前端與後端獨立起來去開發,放在兩個不同的伺服器,需要獨立部署。兩個不同的工程,兩個不同的代碼庫,不同的開發人員,前後端工程師需要約定交互介面,實現同步開發。開發結束後需要進行獨立部署,前端通過介面來調用調用後端的API,前端只需要關注頁面的樣式與動態數據的解析和渲染,而後端專注於具體業務邏輯。


前後端分離的優點是什麼?

1、徹底解放前端。前端不再需要向後台提供模板或是後台在前端HTML中嵌入後台代。

2、提高工作效率,分工更加明確。前端只關注前端的事,後台只關心後台的活,兩者開發可以同時進行,在後台還沒有時間提供介面的時候,前端可以先將數據寫死或者調用本地的JSON文件即可,頁面的增加和路由的修改也不必再去麻煩後台,開發更加靈活。

3、局部性能提升。通過前端路由的配置,我們可以實現頁面的按需載入,無需一開始載入首頁便載入網站的所有的資源,伺服器也不再需要解析前端頁面,在頁面交互及用戶體驗上有所提升。

4、降低維護成本。通過目前主流的前端MVC框架,我們可以非常快速的定位及發現問題的所在,客戶端的問題不再需要後台人員參與及調試,代碼重構及可維護性增強。

5、實現高內聚低耦合,減少後端(應用)伺服器的並發/負載壓力。

6、即使後端服務暫時超時或者宕機了,前端頁面也會正常訪問,但無法提供數據。

7、可以使後台能更好的追求高並發、高可用、高性能,使前端能更好的追求頁面表現、速度流暢、兼容性、用戶體驗等。

了解了這些,我們再來看前後端是怎麼實現交互的

前端調用後端介面無外乎六種方法,如下:

1、打開vs,創建空的asp.net mvc演示項目【WebMVC】

(1)依次點擊【文件】->【新建】->【項目】;

(2)在【新建項目】界面選擇【Web】->【ASP.NET Web 應用程序(.NET Framework)】,輸入名稱,選擇框架至少4.5版本,點擊【確定】按鈕;

(3)選擇【空】->【MVC】->【確定】 ;

(4)創建好了項目。

2、在項目中

(1)在Controllers文件夾上點擊滑鼠右鍵,依次選擇【添加】->【控制器】,即可完成HomeController的創建;

(2)在Controller的Index方法內,點擊滑鼠右鍵,選擇【添加視圖】;

(3)在項目中添加文件夾【Content】並添加jquery源文件;

(4)在Index頁面添加jquery的引用。

3、在Index頁面中添加一個輸入文本框,一個按鈕,以及顯示結果的dom。

4、在HomeController中添加新的方法,用於接收前台傳入的參數,組裝後返回。

5、在Index頁面,添加Jquery的ajax方式,調用後台介面,返回結果的處理代碼。

6、在vs中,按F5調試運行結果,如下:

(1)在文本框中輸入內容;

(2)點擊按鈕,調用介面,並將返回值顯示在界面;

(3)如果要提交大量數據,或者敏感數據,請修改ajax的type方式,這樣參數就不會在url地址欄中顯示了。

以上回答,希望對你有所幫助

4. 前端開發人員當後端沒有給你介面的時候,如何進行功能

我是用的postman調用介面數據,這樣測試的。你一可以自己寫一個頁面,專門用來測試介面的。下面附上postman使用的教程。介面工具-POSTMAN

5. 後端開發和前端開發的區別

展示方式:Web前端開發主要做的是偏向用戶看得見的部分。後端開發主要做的是邏輯功能等模塊,是用戶不可見的。
知識結構:Web前端開發涉及到的知識主要有Html、CSS、avaScript、Android開發、iOS開發、各種小程序開發技術等。Web前端代碼主要在客戶端運行:後端開發以Java為例,主要用到的是協議ServletTomcat伺服器等技術,通常需要根據業務場景進行不同語言的選擇。Web後端代碼主要在服務端(某台機房伺服器等)運行。
工作職責:Web前端工程師的工作職責主要有以下三大部分:【Web前端開發】:PC端開發任務。【移動端開發】:包括Android開發、iOS開發和各種小程序開發。【大數據呈現端開發】:主要是基於已有的平台完成最終分析結果的呈現,呈現方式通常也有多種選擇,比如大屏展示等。
後端工程師的主要職責也集中在三大部分:【平台設計】:主要是搭建後端的支撐服務容器。【介面設計】:主要針對於不同行業進行相應的功能介面設計,通常一個平台有多套介面,就像衛星導航平台設有民用和軍用兩套介面一樣。【功能實現】:完成具體的業務邏輯實現。

6. Web前端該如何與後端合作

今天小編要跟大家分享的文章是關於web前端該如何與後端合作?為了幫助web前端工程師更好的從事工作,提高工作效率,下面來和小編一起看一看吧!

1、前後端分離


前端與後端的分離,能使前端的開發脫離後端的開發模式,擁有更大的自由度,以此便可做前端工程化、組件化、單頁面應用等。


2、盡量避免後端模板渲染


web應用的渲染方式分為伺服器端渲染和客戶端渲染,當下比較推薦的方式是客戶端渲染,數據使用全ajax的方式進行交互。


除非在一些不得不使用伺服器端渲染的情況下(如門戶、電商等),應當盡量使用客戶端渲染,因為客戶端渲染更能使前後端分離(項目分離、代碼解耦、協作分離、職責分離等),也能更好的做本地介面模擬開發,提升開發效率。


即使用伺服器端渲染,在技術支持的條件下,可以使用node
中間層(由前端人員開發),代替傳統的後端模板渲染,這樣可以使後端與前端完全解耦,後端與前端只有數據上的往來。


3、盡量避免大量的線上調試


做好本地介面模擬開發(包括後端模板渲染),避免大量的線上調試,因為線上調試很不方便,也很費事,並且每次更新代碼,都需要重新構建,然後同步到伺服器。


所以做好本地介面模擬開發,只要程序在本地運行是沒問題的,一般線上就不會有太大的問題,這樣就能大幅降低調試工作量,提升開發效率。


4、本地介面模擬開發


本地介面模擬就是在本地模擬一個與伺服器差不多的環境,能夠提供數據所需的介面,進行錯誤模擬處理等等。


本地介面模擬開發的意義就在於能夠在本地完成幾乎所有的開發與調試,盡量減少線上的調試,提高開發效率。


一些常用庫:


§browser-sync:能讓瀏覽器實時、快速響應文件更改(html、js、css、sass、less
等)並自動刷新頁面,並且可以同時在PC、平板、手機等設備下進行調試。


§webpack-dev-middleware:。


§webpack-hot-middleware:熱更新本地開發瀏覽器服務。


另外,本地介面模擬開發需要後端開發人員有規范的介面文檔。


5、規范的介面文檔


前端與後端協作提升開發效率的一個很重要的方法就是減少溝通:能夠形成紙質的文檔就不要口頭溝通、能夠把介面文檔寫清楚也不要口頭溝通(參數、數據結構、欄位含義等),特別是線上協作的時候,面對面交流是很困難的。


一個良好的介面文檔應當有以下的幾點要求與信息:


1.格式簡潔清晰:推薦用APIBlueprint


2.分組:當介面很多的時候,分組就很必要了


3.介面名、介面描述、介面地址


4.http方法、參數、headers、是否序列化


5.http狀態碼、響應數據


介面文檔可以用一些文檔服務(如leanote)來管理文檔,也可以用git來管理;書寫方式可以用markdown,也可以YAML、JSON
等。


推薦使用markdown方式寫文檔,用git管理文檔。


6、去緩存


前端需要做好去客戶端緩存的功能,保證用戶始終都是使用的最新資源,不會因為因為緩存的問題而出現bug。


傳統的去緩存是在靜態資源url
上加上版本號或者時間戳,不過因為構建工具的出現以及一些瀏覽器已經不支持這種方式了的緣故,這種方式已經是過去時了。


現在去緩存是將文件hash化命名,只要文件變動,文件名就會不一樣,以此才能徹底的去緩存。如果使用webpack進行打包,會自動將所有文件進行
hash化命名。


7、做好錯誤處理


前端與後端都需要各自做好錯誤處理,以便發生錯誤能夠有友好的提示,也能在用戶反饋時快速准確定位錯誤來源和原因。


一般前端的錯誤分為:


§腳本運行錯誤:js腳本錯誤,找到堆棧信息,然後解決


§介面錯誤:伺服器報錯、數據返回不對、沒有響應數據、超時等


而介面錯誤分為:


§狀態碼錯誤(狀態碼非2XX):伺服器報錯、超時等


§數據錯誤:沒有響應數據、數據格式不對、數據內容不對


8、運行時捕捉js腳本錯誤


當用戶在用線上的程序時,怎麼知道有沒有出bug;如果出bug了,報的是什麼錯;如果是js報錯,怎麼知道是那一行運行出了錯?


所以,在程序運行時捕捉js腳本錯誤,並上報到伺服器,是非常有必要的。


這里就要用到window.onerror了:


1.window.onerror=(errorMessage,scriptURI,lineNumber,columnNumber,
errorObj)=>{


2.constdata={


3.title:document.getElementsByTagName('title')[0].innerText,


4.errorMessage,


5.scriptURI,


6.lineNumber,


7.columnNumber,


8.detailMessage:(errorObj&&errorObj.message)||'',


9.stack:(errorObj&&errorObj.stack)||'',


10.userAgent:window.navigator.userAgent,


11.locationHref:window.location.href,


12.cookie:window.document.cookie,


13.};


14.


15.post('url',data);//上報到伺服器


16.};


線上的js腳本都是壓縮過的,需要用sourcemap文件與source-map查看原始的報錯堆棧信息。


9、移動端遠程調試、vConsole、TBSStudio


因為移動端的開發無法像pc端開發一樣使用Chrome的開發者調試工具,所以調試移動端需要一些額外的技巧。


移動端應用一般都運行在微信瀏覽器中、webview中、手機瀏覽器中。


遠程調試(RemoteDebugging)


遠程調試就是通過USB連接、埠轉發、搭建代理等方式,將一個設備的web頁面映射到另一個設備上,比如將手機的webview映射到pc
上,達到調試的目的。


移動端web應用調試難題從一開始就有,不過後來瀏覽器廠商基本都推出自己的遠程調試工具來解決這個問題,包括OperaMobile、
iOSSafari、ChromeforAndroid、UC瀏覽器等,另外還有一些第三方開發的遠程調試工具,比如weinre等。


以Android為例,可以將webview、ChromeforAndroid中的頁面映射到pc
端的ChromeDevTools,然後就可以在pc端調試移動端的頁面了。


vConsole


一個輕量、可拓展、針對手機網頁的前端開發者調試面板(chrome開發者工具的便利實現)。


TBSStudio


因為微信瀏覽器是定製的瀏覽器,一般的遠程調試方式都不可用,需要配合特定的工具,如微信開發者工具。


TBSStudio是另一個可以像Chrome一樣調試遠程微信瀏覽器頁面的強大工具。


10、前後端並行開發


正常情況下,前端的開發在完成UI或者組件開發之後,就需要等後端給出介面文檔才能繼續進行,如果能做到前後端並行開發,也能提升開發效率。


前後端並行開發,就是說前端的開發不需要等後端給出介面文檔就可以進行開發,等後端給出介面之後,再對接好後就基本上可以上線了。


在本地化介面模擬的實現下,就可以做到前後端並行開發,只是在代碼層面需要對ajax進行封裝。


11、友好的溝通


不管工具多麼厲害,很多時候都免不了要當面溝通,友好、心平氣和的溝通也是很重要的!


以上就是小編今天為大家分享的關於web前端該如何與後端合作的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助。想要了解更多web前端知識記得關注北大青鳥web培訓官網。最後祝願小夥伴們工作順利!


作者:深予之(@senntyou)


#/a/1190000016852780


7. 怎麼用idea運行jeecgboot的啊還有前端後端怎麼運行的

  1. 後端

    先安裝redis,安裝mysql,執行sql建表導數據,下載包。然後,先啟動redis,再啟動項目。

  2. 前端

    先安裝nodejs,然後安裝yarn,下載包。然後啟動運行。

8. rap2在linux下前端和後台服務如何啟動可以讓服務進程在後台運行

我是按github的文檔搭建的,後端用使用pm2管理
npm run dev 是測試用的 就是看你配置文件有沒有配對 會不會報錯。
沒問題的話 就把配置寫到 src/config.prod.ts里,然後用 npm run build 構建一下 會生成一個dist文件夾,然後在應用根目錄運行 npm start 命令 就啟動了
pm2 list 可以查看啟動的應用,pm2 的命令自己搜一下 挺多的
前端,npm run build 會生成一個 build 文件夾 把 build下面的內容拷貝到 nginx 下就可以了