【问题标题】:Why is this one page not loading its css?为什么这一页没有加载它的css?
【发布时间】:2020-05-07 16:47:45
【问题描述】:

我不明白为什么这一页没有正确加载。我网站上的所有其他页面都很好。我尝试在所有文件中添加指向 css 的链接,但这并没有解决问题。我也尝试将过滤器文件与主文件结合起来,但这也不起作用。了解我,我只是缺少一些基本的东西。未正确访问 styles.css 文件,错误代码为 404。 (这是我的第一个网站)

路由器:

router.get('/flags/:filter', viewController.getFilteredFlagOverview);

导出:

exports.getFilteredFlagOverview = async (req, res) => {
  const params = req.params.filter;
  const flags = await axios({
    method: 'GET',
    url: `http://127.0.0.1:3000/api/v1/flags?${params}`
  });
  var filteredObj = flags.data.data.doc;

  res.status(200).render('flagOverview', {
    title: 'Flags',
    products: filteredObj
  });
};

基础哈巴狗:

doctype html
html
  head
    meta(charset='UTF-8')
    mets(name='viewpoint' content='width=device-width, initial-scale=1.0')
    title Color Guard | #{title}
    link(rel='stylesheet' href='css/style.css')
    link(rel='shortcut icon' type='image/png' href='img/favicon.png')
    link(rel='stylesheet' href='https://fonts.googleapis.com/css?family=Lato:300,300i,700')

产品哈巴狗:

extends base

block content
  head
    include productFilters/_flagFilter
  style.
    .tab1 {
      tab-size: 2;
      }
  <script src="https://kit.fontawesome.com/a9879bc1c3.js" crossorigin="anonymous"></script>

  main.main
  // don't think past this is important

过滤文件 - 我认为问题出在:

filter.filter
  #mySidenav.sidenav
    a.closebtn(href='javascript:void(0)' onclick='closeNav()') &times;
//

//
  br
    a.filterBtn(onclick='applyFilter()') Apply Filter
    br

  button.btn.btn--purple.btn--small(onclick='openNav()') Filter
  .dropdown
    button.btn.btn--purple.btn--small Sell Your Flags
      .dropdown-content
        a(href='/createFlagSilk') Flag Silk
        a(href='/createFlagPole') Flag Pole
        a(href='/createFlagStopper') Flag Stopper
        a(href='/createFlagBolt') Flag Bolt

  script(src='//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js')
  script(src='/js/index.js')
  script(type='text/javascript')
  script.
    function openNav() {
      document.getElementById("mySidenav").style.width = "275px";
    }

    function closeNav() {
      document.getElementById("mySidenav").style.width = "0";
    }

    async function applyFilter() {
      var params = '';
      var temp = document.getElementById('flag_category');
      var category = temp.options[temp.selectedIndex].value;
      temp = document.getElementById('flag_color');
      var color = temp.options[temp.selectedIndex].value;
      temp = document.getElementById('flag_theme');
      var theme = temp.options[temp.selectedIndex].value;
      temp = document.getElementById('flag_flagType');
      var flagType = temp.options[temp.selectedIndex].value;
      temp = document.getElementById('flag_fabricType');
      var fabricType = temp.options[temp.selectedIndex].value;

      if (color) params = params + `color=${color}`
      if (category && color) params = params + `&category=${category}`
      if (category && !color) params = params + `category=${category}`
      if (theme && (color || category)) params = params + `&theme=${theme}`
      if (theme && !color && !category) params = params + `theme=${theme}`
      if (flagType && (color || category || theme)) params = params + `&flagType=${flagType}`
      if (flagType && !color && !category && !theme) params = params + `flagType=${flagType}`
      if (fabricType && (color || category || theme || flagType)) params = params + `&fabricType=${fabricType}`
      if (fabricType && !color && !category && !theme && !flagType) params = params + `fabricType=${fabricType}`

      window.location.replace(`/flags/${params}`);
    };

我尝试了这个,看看它是否可以工作,第一个“渲染产品”可以工作,但第二个不行。

exports.getOverview = (req, res) => {
  res.status(200).render('product', {
    title: 'Product Selection'
  });
};

exports.getFilteredFlagOverview = async (req, res) => {
  /*
  const params = req.params.filter;
  const flags = await axios({
    method: 'GET',
    url: `http://127.0.0.1:3000/api/v1/flags?${params}`
  });
  var filteredObj = flags.data.data.doc;
  */
  res.status(200).render('product', {
    title: 'Flags'
  });
};

【问题讨论】:

  • 您确定这不是浏览器缓存问题吗?尝试清除浏览器缓存?
  • @NikosM。要是这么简单就好了。没修。感谢您的猜测。
  • 您的浏览器对页面 css 的评价是什么? (打开浏览器 cosnole 并根据浏览器查看样式选项卡或网络选项卡)。链接的css加载成功了吗?
  • 你能提供渲染的页面源代码(或者至少是css链接的部分,可能在里面)?这会很有帮助
  • 404 代码表示资源未找到。因此,似乎 css 的 url 错误或设置不正确。沿着这个方向搜索。如果我不知道该项目的全部内容以及它是如何服务的,那就不能说更多了

标签: javascript css node.js pug


【解决方案1】:

我只需要改变

link(rel='stylesheet' href='css/style.css')

link(rel='stylesheet' href='http://127.0.0.1:3000/css/style.css')

在基础哈巴狗中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多