[英]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.