JHipster一知半解- 4.6.1 webapp-目錄結構
迴文集目錄:JHipster一知半解
目錄結構
- 主目錄位於“\src\main\webapp”,
在tscconfig.json中指定檔案目錄:
"include": [
"src/main/webapp/app",
"src/test/javascript/"
]
在webpack.dev.js,webpack.prod.js中指定入口:
entry: {
polyfills: './src/main/webapp/app/polyfills',
global: './src/main/webapp/content/css/global.css',
main: './src/main/webapp/app/app.main'
},
- app目錄:
Angular程式的主目錄,後面程式碼的分析的主體部分。 - content目錄:
包含需要打包的靜態資源(css和image),類似於assert,僅僅copy並hash重新命名,並沒有打包在生產的css或js中。 - i18n目錄:
內部按照語種存放語種檔案,在webpack打包時候會整合成一個××.json的語言包,由ngx-translate統一載入。 - swagger-ui目錄:
swagger中jhipster做了修改的自定義部分,其他包含在(node—_modules/swagger-ui)中。 - 404.html
標準的錯誤頁面,提供給執行在tomcat這樣的容器時找不到頁面的錯誤顯示。理論上,我們生成的前端工程是SPA單頁面,應該設定的頁面在找不到路由時候返回index,然後由前端去自行解析url處理路由。也就是說,這個頁面正常是不起作用的。 - manifest.webapp
網站描述檔案,前端快取用,webpack打包也就是copy到target目錄。 - robots.txt
給google機器人用的網站描述檔案。JHipster是SPA,那麼與後端的api就自然出現在
Disallow中了。
小動作-給index新增載入效果
JHipster前端SPA,直接開啟後要等所有資源載入完畢才顯示(雖然已經做了子模組,但是並沒有做懶載入?),這樣在網路頻寬比較慢的情況下,就會出現長時間“白螢幕”,這顯然不是很好的使用者體驗。由angular的執行原理可以知道,程式載入後,會找index.html中<jhi-main>標籤,清空其內容,在之後新增angluar主介面。那麼,之前我們利用這個原理,向<jhi-main>標籤加東西
不要空白-新增文字。
<jhi-main>
<div>
<h1>Loading</h1>
</div>
</jhi-main>
這樣就能顯示一個“Loading”字串,防止白螢幕
借鑑ngx-admin
TODO:此處應該有ngx-admin的圖片和網站。
通過檢視其index,發現它是加了一段動畫效果,直接copy過來即可
<jhi-main>
<style>@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-moz-keyframes spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.spinner{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1003;background: #ffffff;overflow:hidden} .spinner div:first-child{display:block;position:relative;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;box-shadow:0 3px 3px 0 rgba(255,56,106,1);transform:translate3d(0,0,0);animation:spin 2s linear infinite} .spinner div:first-child:after,.spinner div:first-child:before{content:'';position:absolute;border-radius:50%} .spinner div:first-child:before{top:5px;left:5px;right:5px;bottom:5px;box-shadow:0 3px 3px 0 rgb(255, 228, 32);-webkit-animation:spin 3s linear infinite;animation:spin 3s linear infinite} .spinner div:first-child:after{top:15px;left:15px;right:15px;bottom:15px;box-shadow:0 3px 3px 0 rgba(61, 175, 255,1);animation:spin 1.5s linear infinite}</style>
<div id="nb-global-spinner" class="spinner">
<div class="blob blob-0"></div>
<div class="blob blob-1"></div>
<div class="blob blob-2"></div>
<div class="blob blob-3"></div>
<div class="blob blob-4"></div>
<div class="blob blob-5"></div>
</div>
</jhi-main>
當然,發現黑色的背景,和JHipster差別太大,把background改成#ffffff,稍微好看一點點。
TODO:加效果圖
借鑑PrimeNG
PrimeNG的index就比較複雜了,是一個圖片加上一個css,而且也不是內嵌到html檔案中,而是獨立的,借鑑過來稍微複雜一點。
1. splash.css拷貝到content/css/splash.css
2. mask.svg拷貝到content/images/mask.svg
3. index.html做如下修改(僅列出增加的部分):
<head>
<link rel="stylesheet" type="text/css" href="./content/splash.css">
</head>
<body>
<jhi-main>
<div class="splash-screen">
<div class="splash-loader"></div>
<img class="splash-logo" src="./content/images/mask.svg">
</div>
</jhi-main>
</body>
4.webpackCommon.js的CopyWebpackPlugin增加:
new CopyWebpackPlugin([
{ from: './src/main/webapp/content/css/splash.css', to: 'content/splash.css' }
]),
稍微解釋一下,svg放content/images會由webpack的file-loader拷貝過去並hash從命名,並且會自動修改生成的index.html,所以圖片只需要放入該目錄即可。
而css是有指定的global.css作為入口處理的(如果是sass,就會有個先編譯在載入的過程),僅僅放到目錄,而沒有引用,肯定是沒法載入的,而且打包在一起和我們提前顯示的目的相違背。所以就需要利用CopyWebpackPlugin,把它copy到目標目錄,這樣就可以在<jhi-main>標籤生成前顯示給使用者。
相關文章
- JHipster一知半解- 4.6.4 webapp-shared目錄-1WebAPP
- PostgreSQL 目錄結構SQL
- fabric 目錄結構
- dedecms 目錄結構
- Tomcat目錄結構Tomcat
- 分析Angular目錄結構Angular
- Jmeter之目錄結構JMeter
- ecos框架目錄結構框架
- linux 目錄結構Linux
- 系統目錄結構
- django的目錄結構Django
- 程式碼目錄結構記錄
- DiscuzX2.5完整目錄結構【模板目錄template】
- 2.3 sqlmap目錄及結構SQL
- PostgreSQL:原始碼目錄結構SQL原始碼
- postgre目錄結構簡介
- ThinkPHP5.0目錄結構PHP
- linux的目錄結構Linux
- Android 目錄結構分析Android
- Helm目錄結構講解
- Tomcat目錄結構解析Tomcat
- golang開發目錄結構Golang
- Apache原始碼目錄結構Apache原始碼
- linux下目錄結構Linux
- springboot 目錄結構Spring Boot
- iOS基礎:目錄結構iOS
- Goldengate_目錄結構Go
- Linux目錄結構-轉Linux
- Laravel的目錄結構分析Laravel
- Ubuntu系統目錄結構Ubuntu
- (2)caffe總結之目錄結構
- DedeCMS模板目錄的檔案目錄結構
- (一)Linux之目錄結構Linux
- 初識Linux目錄結構Linux
- linux文件和目錄結構Linux
- Unix目錄結構的來歷
- Glassfish目錄結構一窺(一)
- mysql資料目錄結構(轉)MySql