2015-12-11 35 views
0

我有錯誤,我正試圖解決它幾個小時。 我的文件結構:從nodejs + Ionic應用程序的index.html中的其他文件夾中導入js文件時出現404錯誤

-/node_modules 
-/www 
---bundle.js 
---index.html 
index.html中

我有這樣的代碼

<script src="node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script> 

<!-- cordova script (this will be a 404 during development) --> 
<script src="cordova.js"></script> 

<script src="bundle.js"></script> 

問題是bundle.js包括罰款,但ng-cordova.min.js404錯誤

Cannot GET /node_modules/ng-cordova/dist/ng-cordova.min.js 

編輯:我也試過沒有成功

<script src="/node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script> 
<script src="../node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script> 

我不使用expressexpress.static

回答

2

看你的項目結構我押注它由Express.js供電。我也把賭注押在www夾在這樣的明確的應用程序設置爲靜態的文件夾:

app.use('/', express.static(path.join(__dirname, www))); 

在這種情況下,您的服務器只會地處www文件夾中。您需要包括在www文件夾中的任何客戶端的依賴關係:

-/node_modules/ 
-/www/ 
--lib/ 
---ng-cordova/ 
--bundle.js 
--index.html 

然後加載它們像這樣:

<script src="lib/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script> 

UPDATE

簡而言之node_modules的www文件夾內,它應該工作正常。

+0

我認爲express.js是你應該直接使用的東西,我不使用它,所以我沒有想到在這個方向。 –

+0

但是當我在'app.js'中需要'模塊時,它工作正常。爲什麼這樣? –

+0

啊,對不起。剛剛更新了我的答案。我使用快遞很多,所以我只是假設你也在使用它,當我看到node_modules文件夾。只需將node_modules放入www文件夾中,它應該可以正常工作。 –

0

這裏的問題是,你嘗試從的index.html文件夾加載NG-cordova.min.js文件。 你應該改變:

<script src="node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script> 

對於這一點:

<script src="../node_modules/ng-cordova/dist/ng-cordova.min.js" type="text/javascript"></script> 
+0

這也行不通。 –

0

你要加載從錯誤的目錄中的文件。 你要麼必須使用此路徑:

src="../node_modules/ 

或本:

src="/node_modules" 

的情況下,上述目錄是你的根目錄。

還有一個令人困惑的是,您評論錯誤的行不是錯誤實際來自的行。你爲什麼試圖鏈接到文件兩次?

//編輯:正如羅曼是一分鐘,比我快,他應該得到正確的答案獎勵我要說:P只有當它實際上解決您的問題OFC:d

+0

這兩個路徑都不起作用。 –

+0

您是否安裝了可以測試從其中加載js文件的其他任何節點模塊? – LikeAJohny

+0

是的,我有幾個其他模塊,沒有人加載這種方式。我爲他們使用'browserify',這個模塊對'browserify'也可以正常工作。 –

相關問題