【问题标题】:css/js file reference error while rendering a page using Node.js使用 Node.js 呈现页面时出现 css/js 文件引用错误
【发布时间】:2017-07-12 22:09:35
【问题描述】:

我正在尝试使用 Node.js 作为服务器来加载页面。

我正在尝试创建一个 API,以根据用户输入相应地加载不同的页面。

我正在使用以下代码:

app.get('/apitest/:id', function(request, response) {

    const requestId = request.params.id;    

    if(requestId == 1){
        response.render('pages/index2');
    } else if(requestId == 2){
        response.render('pages/index3');
    } else{
        response.render('pages/404');
    }
});

问题是加载的页面中包含的js和css文件找不到。 原因是服务器在错误的路径上查找它们,如下所示:

http://localhost:5000/apitest/js/three/examples/js/renderers/CanvasRenderer.js

但所有 js/css 文件都在文件夹 public/js 和 public/css(经典服务器 Node.js 路径)中。

所以如果我只是使用加载页面

app.get('/', function(request, response) {  
    response.render('pages/index');
});

一切正常,脚本也完美加载,但如果我尝试使用第一个 sn-p 代码,服务器将无法再找到它们。

我该如何解决这个问题?谢谢。

【问题讨论】:

  • 你需要使用绝对路径。
  • 问题解决了吗?
  • @taha 实际上我已经有了这行代码: app.use(express.static(__dirname + '/public')) 买它不起作用。我也试过你的解决方案,但它不起作用。
  • 当您尝试我的解决方案时,您遇到了什么样的错误?为您的静态文件生成的 url express 是什么?
  • @taha 我收到此错误:加载资源失败:服务器响应状态为 404(未找到)。

标签: javascript node.js server get httprequest


【解决方案1】:

指定挂载路径:

// path should be required
`app.use('/apitest/:id', express.static(path.join(__dirname, 'public')))`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    相关资源
    最近更新 更多