2017-08-10 84 views
-1

我有一個可以上傳圖片的應用程序。一切工作正常,我; m沒有上傳本身的問題... 但我有問題,因爲只要我上傳圖像和存儲在服務器中,angular-clie重新加載頁面。要在角度2項目中上傳圖像嗎?

起初,我是上傳圖像到/ src/assets 然後我重新定位了角度刷新頁面,因爲它檢測到它正在監聽的文件夾上的一些新內容。所以我改變了這一點,現在圖像正在上傳到/ resources(src文件夾之外),所以現在angular-clie不刷新頁面......但是它們對於web應用程序來說不是易用的,因爲它們不在「公用文件夾」。

所以我的問題...我應該在哪裏上傳圖像沒有消防頁重新加載? /或者我如何給angular-cli添加一個異常?

作爲後端我使用Java與Spring,並且該部分工作正常。 我angular2結構爲:

/ 
/resources 
/src 
/src/app 
/src/assets 
/dist 

等等

我的角cli.json上傳時

{ 
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json", 
    "project": { 
    "name": "ng2angle" 

    }, 
    "apps": [ 
     { 
     "root": "src", 
     "outDir": "dist", 
     "assets": [ 
      "assets", 
      "favicon.ico" 
     ], 
     "index": "index.html", 
     "main": "main.ts", 
     "polyfills": "polyfills.ts", 
     "test": "test.ts", 
     "tsconfig": "tsconfig.app.json", 
     "testTsconfig": "tsconfig.spec.json", 
     "prefix": "app", 
     "styles": [ 
      "app/core/preloader/preloader.scss", 
      "styles.scss" 
     ], 
     "scripts": [ 
      "../node_modules/jquery/dist/jquery.js", 
      "app/core/preloader/preloader.js" 
     ], 
     "environmentSource": "environments/environment.ts", 
     "environments": { 
      "dev": "environments/environment.ts", 
      "prod": "environments/environment.prod.ts" 
     } 
     } 
    ], 
    "e2e": { 
     "protractor": { 
     "config": "./protractor.conf.js" 
     } 
    }, 
    "lint": [ 
     { 
     "project": "src/tsconfig.app.json" 
     }, 
     { 
     "project": "src/tsconfig.spec.json" 
     }, 
     { 
     "project": "e2e/tsconfig.e2e.json" 
     } 
    ], 
    "test": { 
     "karma": { 
     "config": "./karma.conf.js" 
     } 
    }, 
    "defaults": { 
     "styleExt": "scss", 
     "prefixInterfaces": false, 
     "inline": { 
     "style": false, 
     "template": false 
     }, 
     "spec": { 
     "class": false, 
     "component": true, 
     "directive": true, 
     "module": false, 
     "pipe": true, 
     "service": true 
     } 
    } 
    } 

控制檯登錄: 角是在開發模式下運行。調用enableProdMode()以啓用生產模式。

{success: true, code: null, data: {…}} 
[WDS] App updated. Recompiling... 
[WDS] App updated. Reloading... 

功能來發送文件到後端:

save(event) { 
    let fileList: FileList = event; 
    if(fileList.length > 0) { 
     let file: File = fileList[0]; 
     let formData:FormData = new FormData(); 
     formData.append('file', file, file.name); 
     let headers = new Headers(); 
     /** No need to include Content-Type in Angular 4 */ 
     let options = new RequestOptions(this.createAuthHeadersForUpload()); 
     return this._http.post(`${this.baseUrl + '/save'}`, formData, options) 
      .map((response: Response) => <JsonResponse>response.json()) 
      .do(function (response) { 
       console.log(response); 
      }) 
      .catch(this.handleError); 
     } 
     else 
     return null; 
    } 
+0

如果您希望圖片位於'angular'項目中,那麼會有一個'assets'文件夾,該文件夾應該已經包含創建項目時生成的'.svg'文件。 –

+1

請注意,您不應該在生產中使用Angular CLI實時服務器(這在日誌中非常明確)。 – jonrsharpe

+0

我有/ src/assets中的資源,而不是/ src/app(我應該在那裏創建它?)但是當我上傳圖像時,anguular-cli會自動重新加載頁面。 這是控制檯日誌: Angular正在開發模式下運行。調用enableProdMode()以啓用生產模式。 {success:true,code:null,data:{...}} [WDS] App updated。重新編譯... [WDS]應用程序已更新。重新加載... – Faabass

回答

0

好了,終於我不能讓它工作在我的本地環境,但我必須有一個開發環境,在那裏我可以存儲圖像並從那裏打開它......無論如何,這不是在珠三角地區發生的,因爲我有一臺Apache服務器。