簡體   English   中英

包含外部JS文件的NodeJS Express sendFile

[英]NodeJS Express sendFile that includes external JS files

所以,我有一個像這樣的文件結構:

App
 client
   index.html
   App.js
 server
   node_modules
   package.json
   server.js

server.js是按節點運行的服務器文件,它提供index.html

var app = require('express')();
var http = require('http').Server(app);



app.get('/', function(req, res){
   res.sendFile("client/index.html",{ root: '../' });
});




http.listen(3000, function(){
  console.log('Server is listening on port 3000');
});

因此index.html就像通常那樣在其頭部包含App.js

        <script type="text/javascript" src="App.js"></script>

問題是,當我連接時,永遠找不到並包含App.js。 給出404。我該如何解決?

當在瀏覽器中請求http://127.0.0.1:3000時,您的服務器似乎什么也不做,只是發送client/index.html 因此,實際上發生了什么,當瀏覽器接收到index.html時,它將向http://127.0.0.1:3000/App.js發送另一個請求。 但是您的服務器無法回答該請求。 它只能對索引的要求。 如果您想使用靜態服務器,請在Github上查看serve-static: https : //github.com/expressjs/serve-static,或者您可以像為index.html所做的那樣為App.js占用應用程序編寫另一條路由。

這個解決了我的問題。 您可以檢查一下。

var express = require('express');
var app = express();
app.use('/js', express.static(__dirname + '/public/js'));

因此,我的app.js可以通過-> http:// localhost:3000 / js / app.js進行訪問

查看您的服務器文件夾結構,您需要使用路徑./client/App.js進行訪問,而不僅僅是App.js

所以您的腳本標簽看起來像

<script type="text/javascript" src="./client/App.js"></script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM