【问题标题】:unable to load static css file in the dash app无法在仪表板应用程序中加载静态 css 文件
【发布时间】:2020-01-06 18:58:24
【问题描述】:

我已经构建了一个单页破折号应用程序,该应用程序在作为单个文件运行时按预期运行,但是当我尝试将其作为整个应用程序运行时,CSS 无法正确加载。

下面是我的文件夹结构

当我通过manage.py 加载整个应用程序时,下面是我得到的错误

Internal Server Error: /assets/internal.css
Traceback (most recent call last):
  File "C:\Users\Tushar\Documents\serato_video_analyser\video_analyser\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
    response = get_response(request)
  File "C:\Users\Tushar\Documents\serato_video_analyser\video_analyser\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\Tushar\Documents\serato_video_analyser\video_analyser\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Tushar\Documents\serato_video_analyser\video_analyser\my_project\analyser_tool\views.py", line 32, in dash_index
    return HttpResponse(dispatcher(request))
  File "C:\Users\Tushar\Documents\serato_video_analyser\video_analyser\my_project\analyser_tool\views.py", line 27, in dispatcher
    return response.get_data()
  File "C:\Users\Tushar\Documents\serato_video_analyser\video_analyser\lib\site-packages\werkzeug\wrappers.py", line 986, in get_data
    self._ensure_sequence()
  File "C:\Users\Tushar\Documents\serato_video_analyser\video_analyser\lib\site-packages\werkzeug\wrappers.py", line 1035, in _ensure_sequence
    raise RuntimeError('Attempted implicit sequence conversion '
RuntimeError: Attempted implicit sequence conversion but the response object is in direct passthrough mode.

这是我唯一正在使用的第二个 dash 应用程序,遗憾的是没有太多经验。如果有人可以帮我解决这个问题,我真的很高兴。我已经为此苦苦挣扎了几天。

提前非常感谢!!

【问题讨论】:

    标签: python css django pycharm plotly-dash


    【解决方案1】:

    通过继续研究,我能够通过将以下内容添加到我的 server.py 来解决该问题

    css_directory = os.getcwd()
    stylesheets = ['stylesheet.css']
    static_css_route = '/static/'
    
    
    @app.server.route('{}<stylesheet>'.format(static_css_route))
    def serve_stylesheet(stylesheet):
        if stylesheet not in stylesheets:
            raise Exception(
                '"{}" is excluded from the allowed static files'.format(
                    stylesheet
                )
            )
        return flask.send_from_directory(css_directory, stylesheet)
    
    
    for stylesheet in stylesheets:
        app.css.append_css({"external_url": "/static/{}".format(stylesheet)})
    

    这个答案之前回答过,取自

    https://community.plot.ly/t/serve-locally-option-with-additional-scripts-and-style-sheets/6974/6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 2021-05-05
      • 2020-10-02
      • 2020-10-10
      • 2018-11-12
      • 1970-01-01
      • 2020-12-17
      相关资源
      最近更新 更多