簡體   English   中英

無法使用 python 包 web.py 提供本地靜態 CSS 文件,僅 HTML 顯示

[英]Cannot serve local static CSS file using python package web.py only HTML displays

我目前正在學習 python 課程,當頁面加載時,它不會與任何 CSS 一起顯示。

我的 Controller.py 位於根目錄D:\\Coding\\Python_Projects\\Py\\CodeWizard

我的 CSS 文件位於D:\\Coding\\Python_Projects\\Py\\CodeWizard\\static\\css

我的 HTML 文件位於D:\\Coding\\Python_Projects\\Py\\CodeWizard\\Views\\Templates

控制器.py

import web


urls = (
    '/', 'home'
    )

render = web.template.render("Views/Templates", base="MainLayout")
app = web.application(urls, globals())


# Classes/Routes
class home:
    def GET(self):
        return render.home()


if __name__ == "__main__":
    app.run()

MainLayout.html:

$def with (page)
$var css: \\static\css\bootstrap.min.css \\static\css\bootstrap-material-design.min.css

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CodeWizard</title>

    $if self.css:
        $for style in self.css.split():
            <link rel="stylesheet" href="$style"/>

</head>
<body>
  <div id="app">
    <nav class="navbar navbar-dark bg-primary fixed-top navbar-expand-lg">
      <div class="navbar-header">
        <a class="navbar-brand">CodeWizard</a>
      </div>

      <div class="nav navbar-nav mr-auto mt-2 mt-lg-0">
        <a class ="nav-item nav-link" href="/">Home Feed</a>
        <a class ="nav-item nav-link" href="/discover">Discover</a>
        <a class ="nav-item nav-link" href="/profile">Profile</a>
        <a class ="nav-item nav-link" href="/settings">Settings</a>
      </div>

      <div class="pull-right">
        <a href"/register" class="btn btn-raised btn-default">Register</a>
      </div>
    </div>
      $:page
  </nav>
</body>
</html>

主頁.html:

<br /> <br /> <br />

<div class="container">
<h1>Hello CodeWizard</h1>
</div>

如果我沒有在 css 文件位置的 static 前面添加額外的斜杠,我會收到一些控制台錯誤,例如 StaticApp 沒有屬性目錄,並且 int() 的文字無效,基數為 10

包含額外的斜杠后,我收到一條 200 OK 消息。 當我檢查頁面並查看網絡時,它顯示 CSS 文件的狀態為已取消。

不知道如何解決這個問題。 我試着搜索了很多。 我為 chrome 創建了一個快捷方式

"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" --allow-file-access --disable-web-security --user-data dir="C:\\ChromeLocalFileAccess"

那不起作用,我還嘗試了 css 文件的直接路徑,同時還嘗試了file:///和許多其他組合。

如果有人可以幫助我,將不勝感激,因此我可以繼續學習課程並學習更多 python :) 在此先感謝您。

這是在 Python 3.7 環境中運行的 web.py 的問題。 它已被此拉取請求修復。

有了這個固定,你的路徑不應該以\\\\開頭:

任何一個

$var css: static\css\bootstrap.min.css static\css\bootstrap-material-design.min.css

或者

$var css: static/css/bootstrap.min.css static/css/bootstrap-material-design.min.css

將工作

這對我有用所以在 mainLayout.html 試試這個

$def with (page)
$var css: static/css/bootstrap.min.css

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>mainlayout</title>
    $if self.css:
        $for style in self.css.split( )
            <link rel ="stylesheet" href="$style" />
</head>
<body>
     <div id="app">
    <nav class="navbar navbar-dark bg-primary fixed-top navbar-expand-lg">
      <div class="navbar-header">
        <a class="navbar-brand">CodeWizard</a>
      </div>

      <div class="nav navbar-nav mr-auto mt-2 mt-lg-0">
        <a class ="nav-item nav-link" href="/">Home Feed</a>
        <a class ="nav-item nav-link" href="/discover">Discover</a>
        <a class ="nav-item nav-link" href="/profile">Profile</a>
        <a class ="nav-item nav-link" href="/settings">Settings</a>
      </div>

      <div class="pull-right">
        <a href="/register" class="btn btn-raised btn-default">Register</a>
      </div>

    </div>
   <div>
       $:page
   </div>


</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM