【问题标题】:Express JS - 404 on static filesExpress JS - 静态文件上的 404
【发布时间】:2013-06-27 13:05:37
【问题描述】:

我似乎无法让 express 3.x 在我的公共目录中提供静态文件。他们都请求以 404 结尾。

    var express = require('express')  
  , engine = require('ejs') 
  , app = express();


app.configure(function () {
    app.use(express.static(__dirname + '/public'));   
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
});

app.get('/', function(req, res) {
    res.render('test.ejs')
});


app.listen(3000);

我的 test.ejs 引用了如下所示的 js 文件:

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

我一定忽略了一些简单的事情。我有以下文件夹结构:

project
  -public
     -js
        testscene.js
  -views ]

谁能告诉我我错过了什么?

更新

我实际上创建了一个新项目并将我的脚本复制到这个新项目中并且它可以工作?! 我想我只需要关闭它作为某种本地化的怪异。感谢您的所有时间。

【问题讨论】:

  • 您是否尝试在没有app.configure 的情况下调用它? (基本上,在顶层)
  • 我刚刚做了.. 相同的区别。
  • 你试过 /js/testscene.js 作为 url 吗?
  • 是的……很奇怪。我在看其他项目,这看起来不错。

标签: node.js express ejs


【解决方案1】:

__dirname 是当前 .js 文件所在的目录。您的文件系统 ascii 艺术图忽略了这个难题的重要部分。例如,如果您的第一个代码 sn-p 位于 project/server.js,那么这是正确的。我认为然后在您的浏览器中加载http://localhost:3000 应该可以正确找到js/testscene.js 文件。但是,使用相对 URI 通常不是一个好主意,除非您真的确定自己想要/需要它,所以为了理智起见,请将其更改为 src="/js/testscene.js"

【讨论】:

  • 我正在执行的脚本位于根级别。含义在 /project/main.js 中。我找不到任何问题。
猜你喜欢
  • 2015-12-01
  • 2015-02-26
  • 2016-01-24
  • 1970-01-01
  • 2023-02-18
  • 1970-01-01
  • 2020-10-15
  • 2016-01-16
  • 1970-01-01
相关资源
最近更新 更多