使用node.js在http:// localhost而不是file://上查看站点

时间:2014-11-08 10:35:41

标签: html node.js server

我正在学习使用node.js。

file:///C:/.../myfolder/index.html开始运行时网站看起来很好 我在目录myfolder/css/myfolder/js中有我的jquery和bootstrap文件。

但是当我运行node index.js并转到localhost:3000时,找不到这些css和js文件。

这是我的index.html文件中的内容:

 <link href="/css/bootstrap.min.css" rel="stylesheet">
 <script src="/js/bootstrap.min.js"></script>
 <script src="/js/jquery.js"></script>
 <script src="/socket.io/socket.io.js"></script>

我应该在nodejs中存放一些我应该存储这些文件的文件夹吗?或者我是否必须在index.js中放入一些导入所有css和js文件的代码?

4 个答案:

答案 0 :(得分:0)

您的localhost从您计算机上的特定目录开始。如果使用Xampp,则必须将所有服务器文件放在C:\ xampp \ htdocs \中,以便通过localhost URL访问这些文件。其他一些服务器使用名为“www”的文件夹。

找到您的服务器根路径并将您的文件放在那里。或者从服务器根目录创建符号链接到文件。

答案 1 :(得分:0)

您需要路径模块吗?

var path = require('path');

最好创建一个public目录来存储文件。

public/index.html
public/css/style.css
public/js/scripts.js

答案 2 :(得分:0)

您可以在此处按照Express.js的快速入门说明进行操作:

https://www.npmjs.org/package/express

然后浏览到http://localhost:3000进行测试

您可以使用Atom文本编辑器或Brackets,将文件放在public文件夹下并引用它们。

http://atom.io
http://brackets.io

默认情况下,Express使用名为Jade的模板引擎。您可以在此处查看:

http://jade-lang.com/

Using HTML in Express instead of Jade

Node.js + Express without using Jade

祝你好运!

答案 3 :(得分:0)

您无法访问 localhost:3000 / folder / file 的原因是 localhost:port 只是一个虚拟端口。没有这样的目录,称为 localhost:3000 / css / localhost:3000 / js

要解决此问题,您需要使用express模块​​配置用于服务静态资产的根目录。

基本上,您需要添加以下代码:

var express=require('express');
var app=express();
var path=require('path');    
app.use(express.static(path.join(__dirname,'public')));

,您的静态文件目录将是currentWorkingDirectory / public /,其中包含您的所有资产。

在您的代码中,要链接任何源文件,

href='/fileName.extention'

这里是文档链接express-static-files