无法从Web Py控制器访问样式表和javascript文件。

问题描述 投票:0回答:1

我对Python编码非常陌生。我开始使用Web.py构建一个简单的网站。虽然我能够正确地创建所有简单的路由,如主页、配置文件等,但我在设置带有regex字符的路由时遇到了一个问题。所以,我有一个点击链接进入设置页面的路由。

'/settings/(.*)', 'Settings'

在... * 我将从session对象中传递用户名值。现在点击后,虽然应用程序正确路由到设置页面,但无法从静态目录中加载相应的样式和JS文件。请看下面我的文件夹结构。

项目文件夹结构:

Project Folder Structure

请找到我配置的控制器文件。

import web
from Models import Users, Login, Posts

web.config.debug = False
urls = (
    '/', 'Home',
    '/settings/(.*)', 'Settings'
)

app = web.application(urls, globals())
session = web.session.Session(app, web.session.DiskStore("sessions"), initializer= {"user": None})
session_data = session._initializer

render = web.template.render("Views/Templates", base="CodeWizardContainer",
                         globals={'session': session_data, 'current_user': 
session_data["user"]})


class Home:
   def GET(self):
       return render.Home()


class Settings:
    def GET(self, user):
        return render.Settings()


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

我所有的CSS和JS文件都在ROOT目录下的静态文件夹下。对于其他简单的URL,样式正在加载文件。但是,在设置动态URL时,应用程序试图从settingsstaticcs或settingsstaticjs文件夹中再次加载样式和javascript,这显然不是正确的路径。但我在应用程序的任何地方都没有引用这样的CSS或JS文件的路径。只有在设置路径访问过程中,我才会出现这样的问题。请在下面找到整个Python控制台的日志。

127.0.0.1:57740 - - [23/May/2020 17:41:04] "HTTP/1.1 GET /" - 200 OK
127.0.0.1:57741 - - [23/May/2020 17:41:04] "HTTP/1.1 GET /static/js/scripty.js" - 304 Not Modified
127.0.0.1:57740 - - [23/May/2020 17:41:04] "HTTP/1.1 GET /static/css/mystyle.css" - 304 Not Modified
127.0.0.1:57748 - - [23/May/2020 17:41:19] "HTTP/1.1 GET /register" - 200 OK
127.0.0.1:57748 - - [23/May/2020 17:41:24] "HTTP/1.1 GET /settings/user1" - 200 OK
127.0.0.1:57749 - - [23/May/2020 17:41:24] "HTTP/1.1 GET /settings/static/css/mystyle.css" - 200 OK
127.0.0.1:57751 - - [23/May/2020 17:41:24] "HTTP/1.1 GET /settings/static/js/jquery-3.4.1.min.js" - 200 OK
127.0.0.1:57753 - - [23/May/2020 17:41:24] "HTTP/1.1 GET /settings/static/js/popper.min.js" - 200 OK
127.0.0.1:57748 - - [23/May/2020 17:41:24] "HTTP/1.1 GET /settings/static/css/bootstrap.css" - 200 OK
127.0.0.1:57755 - - [23/May/2020 17:41:24] "HTTP/1.1 GET /settings/static/js/bootstrap.min.js" - 200 OK
127.0.0.1:57757 - - [23/May/2020 17:41:24] "HTTP/1.1 GET /settings/static/js/scripty.js" - 200 OK

虽然在浏览器中状态显示为200OK,但由于路径settingsstaticcss或settingsstaticjs不正确的原因,样式和JS没有被加载。

javascript python html css web.py
1个回答
0
投票

你有点误解了这里的意思。

/settings/static/css/mystyle.css 和朋友 被成功加载:它们只是和你想的不一样。

你没有列出你的Settings.html模板文件的内容,所以我只能猜测,但你请求的 /settings/static/css/mystyle.css 由'settings(.*)'路径解决,变成了现在的 Settings.GET(user="static/css/mystyle.css") 其中返回 render.Settings() 再。

另外,请注意,你的 render 值在程序启动时只设置一次,所以当你改变用户值时,它不会改变(至少我认为你想做的是这样)。

© www.soinside.com 2019 - 2024. All rights reserved.