【问题标题】:Where to put the css file when using obelisk使用方尖碑时将css文件放在哪里
【发布时间】:2019-08-14 19:05:37
【问题描述】:

我想使用 Obelisk 让两个 div 并排浮动。为此,我使用了这篇文章中的信息How to place div side by side,并且为此解决方案类必须在 css 中声明。按照本教程 (https://github.com/hansroland/reflex-dom-inbits/blob/master/tutorial.md) 的建议,更具体地说,关于 mainWidgetWithHead 的部分,我将命令放在不同的文件中。但是,问题是我找不到 css 文件应该存储在哪里才能被程序访问。

我尝试将它放在“ob init”自动生成的目录中的几个位置,但是当我在浏览器中加载它时,我总是得到一个空的 css 文件。

您可以在下面看到 frontend/src/Frontend.hs 中使用的前端函数的最小示例。

frontend :: Frontend (R FrontendRoute)
frontend = Frontend
    { _frontend_head = prerender_ (text "Loading..") headElement
    , _frontend_body = prerender_ (text "Loading...") bodyElement
    }

headElement :: MonadWidget t m => m ()
headElement = do
    el "title" $ text "Title"
    styleSheet "/css/cssTest.css"
        where
            styleSheet link = elAttr "link" (Map.fromList [
                    ("rel", "stylesheet"),
                    ("type", "text/css"),
                    ("href", link)
                ]) $ return ()

bodyElement :: MonadWidget t m => m ()
bodyElement = elClass "div" "container" $ do
    elClass "div" "fixed" $ do
        el "h2" $ text "Button enabled / disabled"
    elClass "div" "flex-item" $ do
        el "h2" $ text "Second paragraph next to it."

因此,无论我将 css 文件放在何处,都会给出此错误消息: 资源被解释为样式表,但以 MIME 类型 text/plain 传输:“http://127.0.0.1:8000/css/cssTest.css

【问题讨论】:

    标签: css haskell reflex reflex-dom obelisk


    【解决方案1】:

    您应该将站点所需的所有静态资产存储在由ob init 创建的static 目录中。这对于移动构建尤其重要。

    您需要做的另一件事是引用这些资产,如下所示:

    styleSheet $ static @"css/cssTest.css"
                 ^^^^^^^^
    

    假设您已打开TypeApplications,这是方尖碑骨架中的默认设置。

    【讨论】:

    • 使用此解决方案时出现以下错误:无法推断 (StaticFile "css/cssTest.css") 因使用“静态”而引起。还使用了 {-# LANGUAGE TypeApplications #-}。
    • @EmielLanckriet 用于派生StaticFile "foo/bar",在您启动ob run 或构建项目时,该文件需要位于项目根目录中的static/foo/bar 中。如果这仍然不起作用,我需要更多信息,例如您的default.nix
    • 使用这篇文章 (stackoverflow.com/questions/57548236/…) 删除“/css/cssTest”中的“/”似乎解决了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2013-05-04
    • 1970-01-01
    相关资源
    最近更新 更多