【问题标题】:Google App Engine css not loading after deployment with Luminus使用 Luminus 部署后 Google App Engine css 未加载
【发布时间】:2017-04-01 15:24:28
【问题描述】:

我使用 luminus 框架在 clojure 中创建了一个小型应用程序。当我使用 lein run 运行应用程序时,一切正常。它可以正确加载 css 和 js,但是当我创建一个 war 文件并在 google 应用程序引擎上部署时,样式表不起作用。我尝试了此链接上给出的解决方案:Serving static files with ring/compojure - from a war 但它仍然无法正常工作。可能有一些我缺少的特定于 luminus 的东西。当我检查它并查看控制台时,它会显示此错误

获取未绑定:net::ERR_UNKNOWN_URL_SCHEME"

我想我在 luminus 中遗漏了一些东西,有人可以帮忙吗?谢谢

【问题讨论】:

  • 配置错误,字符串“未绑定”被设置为某些<link> 的目标。你能发布更多关于你是如何设置的信息吗?
  • 你使用塞尔默吗?能否请您发布页面的来源?
  • 是的,我正在使用 Selmer,基本上它是在使用 GAE 运行它时在路径中添加 servlet-context。所以路径是 ''跨度>
  • 我想我明白了。根据此文档 [链接] (luminusweb.net/docs/html_templating.md),Selmer 将自动添加 servlet-context 直到它不存在。因此,我们可以直接使用链接标签<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css"> 来获取文件,而不是使用 Selmer 样式。但是有什么方法可以在不添加 servlet-context 的情况下使用 Selmer 样式标签?

标签: clojure leiningen compojure luminus


【解决方案1】:

所以我弄清楚了为什么会这样。 Selmer 样式标记{% style "filename" %} 将生成一个 HTML 脚本标记并将 servlet-context 键的值添加到 URI。当 servlet-context 键不存在时,则设置原始 URI。因此,当您提供src = "css/filename" 时,它会提供src = servlet-context + "css/filename",这可以在检查中看到。因此,为避免这种情况,要么不关联 servlet-context,要么使用普通样式表 <link> 添加静态 css/js 文件。 要删除 servlet-context 只需在 layout.clj 文件中注释掉 :servlet-context *app-context* 行形式的 render 函数,它就会开始工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2015-11-13
    • 2014-03-14
    • 2015-02-19
    • 2013-12-17
    • 2014-08-03
    • 2020-11-23
    相关资源
    最近更新 更多