0

<link href="">我正在使用 LightTable 制作 nodejs 应用程序,当我在标签中指示文件的相对路径时,css 似乎加载正常。但是,当我运行node index.js时,服务器启动并且页面加载正常,但是我得到一个控制台错误和我自己的 404,说在指定的路径中找不到 CSS 文件。我也尝试使用 Heroku Foreman Start,但没有骰子。这是html:

<!DOCTYPE html>
<html>
    <head>
        <title>
            Home
        </title>
        <link href="../../styles/master.css" rel="stylesheet" type="text/css" />
    </head>
...

这是我的目录树结构:

.
├── Procfile
├── README.md
├── index.js
├── package.json
├── resources
│   └── images
│       └── tokyo.jpg
├── styles
│   └── master.css
└── views
    ├── get
    │   ├── home.html
    │   └── posts.html
    └── post
        └── new.html 

编辑:找到问题的答案后,以下信息变得相关。我已经注释掉了根据需要加载 CSS 和背景图像的新代码。

这是我的路由和服务器代码。我不是故意使用 Express:

    // routes
    var homeREGEX = new RegExp('^/?$');
    var newREGEX = new RegExp('^/posts/new/?$');
    var postsREGEX = new RegExp('^/posts/?$');
 // var cssREGEX = new RegExp('^/styles/master.css/?$');             <--| static resources also
 // var tokyoREGEX = new RegExp('^/resources/images/tokyo.jpg/?$');  <--| need routes. 

    // server
    var server = http.createServer(function(request, response){
      var pathname = url.parse(request.url).pathname;

      if (homeREGEX.test(pathname)) {
        renderHome(request, response);

      } else if (newREGEX.test(pathname)) {
        renderPostForm(request, response);
      } else if (postsREGEX.test(pathname)) {
        addNewPost(request, response);
   // } else if (cssREGEX.test(pathname)) {           <--| and they need to get
   //   sendCSS(request, response);                   <--| served individually as
   // } else if (tokyoREGEX.test(pathname)) {         <--| they are requested
   //   sendTokyo(request, response);
      } else {
        error404(request, response);
      }
    });
4

2 回答 2

1

查看页面时您在浏览器中使用的 url 是什么?我的猜测是不包含该views/get部分,这意味着您不需要..\..链接中的 href 属性。

另外,请确保您实际上在提供这些静态文件(看来您不是)。例如,如果您使用 express (使用 nodejs ),您将需要这样的东西:

app.use(express.static('resources'));
app.use(express.static('style'));

请参阅express.static文档

于 2014-09-24T06:40:19.570 回答
1

也许您可以尝试放置确切的路径而不是 ../../

<link href="/Procfile/styles/master.css" rel="stylesheet" type="text/css" />
于 2014-09-24T06:45:09.017 回答