статические маршруты файлов в экспрессе узла не работают - PullRequest
0 голосов
/ 12 июня 2018

Я там,

У меня есть поиск ответа на то, что кажется моей проблемой, и я сделал реализацию, которую можно найти в ответах, связанных с моей проблемой, но они не работают.

dev машина: установлены пакеты windows 10 pro:

 "express": "^4.16.3",
  "request": "^2.87.0",
  "serve-static": "^1.13.2",

папки dir

|app
| |- web
| |  |-pages
| |  |   - <app domain folder>
| |  |    |  - index.html
| |  |    |- routeHandler.js    
| |  |-static
| |  | - js
| |  |   | - appClient.ls
|infrascruture
| - web
| | -builder.js 
|index.js 

на buider.js У меня есть весь экспресс-шаблон для запускасервер, включая статическое промежуточное ПО: например:

var serveStatic = require("serve-static");

module.exports = (function(express)
{
module = {};
module.webApp =  express();

module.addAppComponents = function() {}
module.addStaticMiddleware = function()
{
 module.webApp.use('static', serveStatic(path.join(__dirname, "/app/web/static/js/")));
}
return module;
});

в index.js в корне приложения. Я вызываю addStaticMiddleware () из экземпляра этого модуля.

index.html в папке домена приложения подается на работающий маршрут, а html:

<!DOCTYPE html>
<html>
    <script src="/static/clientApp.js" ></script> 
    <body onload="loaded()">
        <h1> Endpoints</h1>
        <h2> These are the endpoints available to subscribe</h2>
    </body>

</html> 

, а index.html, связанный с ранее зарегистрированным маршрутом, корректно отображается на клиенте, ноjavascript не извлекается:

запросы, которые выполняет браузер:

// fetching the index.html
request: GET url: localhost:8080/pages/endpoints/{}
headers: {"host":"localhost:8080","connection":"keep-alive","cache-control":"max-age=0","upgrade-insecure-requests":"1","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","accept-encoding":"gzip, deflate, br","accept-language":"en-US,en;q=0.9"}
body: "{}"

// fetching the javascript but not working
request: GET url: localhost:8080/static/clientApp.js{}
headers: {"host":"localhost:8080","connection":"keep-alive","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36","accept":"*/*","referer":"http://localhost:8080/pages/endpoints/","accept-encoding":"gzip, deflate, br","accept-language":"en-US,en;q=0.9"}

есть мысли?

спасибо заранее!

1 Ответ

0 голосов
/ 12 июня 2018

используйте

module.webApp.use('static', serveStatic('../../app/web/static/js/')));

вместо

module.webApp.use('static', serveStatic(path.join(__dirname, "/app/web/static/js/")));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...