首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExpressJS应用程序没有为嵌套路由提供正确的公共文件

ExpressJS应用程序没有为嵌套路由提供正确的公共文件
EN

Stack Overflow用户
提问于 2017-06-26 11:41:23
回答 1查看 1.1K关注 0票数 0

背景

因此,我有一个简单的Express应用程序(用快递生成器制作)具有这个结构(y只显示相关部分):

代码语言:javascript
复制
myapp
├── app.js
├─┬ public
│ └─┬ assets
│   ├── css
│   └── js
├─┬ routes
│ └── admin.js
└─┬ views
  ├── layout.pug
  ├── admin.pug
  └── process.pug

我的观点

我的layout.pug是这样的

代码语言:javascript
复制
html
    head
        title= title
        link(rel='stylesheet', href='assets/css/main.css')
        script(type="text/javascript", src="assets/js/main.js")
        block imports
    body
        /*navigation*/
        block contents

而admin.pug是

代码语言:javascript
复制
extends layout
block imports
    script(type="text/javascript", src="assets/js/admin.js")
block contents
    p Admin page

而process.pug是

代码语言:javascript
复制
extends layout
block imports
    script(type="text/javascript", src="assets/js/process.js")
block contents
    p Process page
    p= id

我的路线

我有一个路径文件,admin.js:

代码语言:javascript
复制
var express = require('express');
var router = express.Router();

router.get('/process/:id', function(req, res, next) {
    res.render('process', {
        title: 'process page',
        id: req.params.id
    });
}

router.get('/', function(req, res, next) {
    res.render('admin', {
        title: 'admin page'
    });
}

module.exports = router;

我的app.js

我在app.js文件中所做的相关工作如下:

代码语言:javascript
复制
var admin = require('./routes/admin');
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use('/admin', admin);

问题所在

我的应用程序就像我上面写的那样,我的'/admin/ page运行得非常好。但是,当我试图导航到'/admin/process/id‘时,它不会从我的公用文件夹中加载任何资源。它尝试从'/admin/process/assets/‘而不是'/assets/’加载。

我试过的

我完全迷上了这个,但我试过几样东西。

  • 在实际的'/admin/process'文件中创建admin.js路由会得到相同的结果(不加载资源)。
  • 创建一个全新的路由文件并在app.js上使用它并使用app.use('/admin/process', newFile);,结果是相同的行为。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-26 11:58:17

为文件添加绝对路径- layout.pug

代码语言:javascript
复制
link(rel='stylesheet', href='/assets/css/main.css')
script(type="text/javascript", src="/assets/js/main.js")

admin.pug

代码语言:javascript
复制
script(type="text/javascript", src="assets/js/admin.js")

process.pug

代码语言:javascript
复制
script(type="text/javascript", src="/assets/js/process.js")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44758932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档