草庐IT

javascript - Zf2 布局 css 和 javascript 路径在子路由上不解析

coder 2024-04-26 原文

目前我正在尝试设置所有使用相同模板的分段路线。目前基本路线/my-dashboard View 使用布局。这适用于基本路线。但是在尝试添加子段路由后,布局 css 和 js 路径不正确。我希望/my-dashboard/ideas/my-dashboard/whatever/my-dashboard/whatever/update/777 下的任何部分都使用相同的布局,但 View 不同。以及为每个 View 提供正确的 css 和 js 路径的布局。

路由.config.php

'dashboard' => array(
        'type' => 'literal',
        'options' => array(
            'route'    => '/my-dashboard',
            'defaults' => array(
                'controller' => 'dashboard',
                'action'     => 'dashboard',
            ),
        ),
        'may_terminate' => true,
            'child_routes' => array(
                'wahtever' => array(
                    'type'    => 'Segment',
                    'options' => array(
                        'route'    => '/ideas',
                        'defaults' => array(
                            'controller' => 'ideas',
                            'action'     => 'ideas',
                        ),
                    ),
                ),
            ),
    ),

如果我转到/my-dashboard,它将显示正确的 View 以及我想用于任何这些路线的布局。如果我转到/my-dashboard/ideas,路由会解析,但是当在控制台中查看时,所有的 css 和 js 都被 404s 搞砸了,找不到这样的。如果我在布局中添加 ../它将在嵌套路由上工作,但随后会搞砸/my-dashboard 路由。

模块.config.php

'view_manager' => array(
    'template_map' => array(
        'layout/my-dashboard-layout' => __DIR__ . '/../view/layout/my-dashboard-layout.twig',
        'wmi/dashboard/dashboard'    => __DIR__ . '/../view/dashboard/dashboard.twig',
        'wmi/ideas/ideas'            => __DIR__ . '/../view/ideas/ideas.twig',
    )
),

编辑以添加布局和 View 。 布局/我的仪表板布局.twig

<!DOCTYPE html>
<html>

<head>
    <!-- Theme CSS -->
    <link rel="stylesheet" type="text/css" href="skin/default_skin/css/theme.css">

    <!-- Admin Panels CSS -->
    <link rel="stylesheet" type="text/css" href="admin-tools/admin-plugins/admin-panels/adminpanels.css">

    <!-- Admin Forms CSS -->
    <link rel="stylesheet" type="text/css" href="admin-tools/admin-forms/css/admin-forms.css">
    <!-- Favicon -->
    <link rel="shortcut icon" href="img/favicon.ico">
</head>
<body class="dashboard-page sb-l-o sb-r-c">
    <!-- Start: Content-Wrapper -->
    <section id="content_wrapper">
        {% block content %}{{ content|raw }}{% endblock content %}
    </section>
<!-- jQuery -->
<script type="text/javascript" src="js/jquery/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="js/jquery/jquery_ui/jquery-ui.min.js"></script>

<!-- Bootstrap -->
<script type="text/javascript" src="js/bootstrap/bootstrap.min.js"></script>
</body>
</html>

我指的是所有 css 和 javascript 路径。在基本文字路线/my-dashboard 上,布局和 View 显示正确。尽管当您转到段部分/my-dashboard/ideas 时,您会得到 404 无法在浏览器控制台中找到任何内容。

GET http://watch.dev/my-dashboard/skin/default_skin/css/theme.css 
GET http://watch.dev/my-dashboard/admin-tools/admin-plugins/admin-panels/adminpanels.css 
GET http://watch.dev/my-dashboard/admin-tools/admin-forms/css/admin-forms.css 
GET http://watch.dev/my-dashboard/img/avatars/2.jpg 
404 (Not Found) 
GET http://watch.dev/my-dashboard/js/jquery/jquery-1.11.1.min.js 
GET http://watch.dev/my-dashboard/js/bootstrap/holder.min.js
GET http://watch.dev/my-dashboard/components/circles/circles.js
GET http://watch.dev/my-dashboard/components/raphael/raphael.js
GET http://watch.dev/my-dashboard/js/jquery/jquery_ui/jquery-ui.min.js  
GET http://watch.dev/my-dashboard/components/highcharts/highcharts.js 
GET http://watch.dev/my-dashboard/js/bootstrap/bootstrap.min.js
GET http://watch.dev/my-dashboard/admin-tools/admin-plugins/admin-panels/adminpanels.css 
GET http://watch.dev/my-dashboard/admin-tools/admin-forms/css/admin-forms.css  
GET http://watch.dev/my-dashboard/img/avatars/2.jpg 
404 (Not Found) 
GET http://watch.dev/my-dashboard/js/jquery/jquery-1.11.1.min.js 
GET http://watch.dev/my-dashboard/js/bootstrap/holder.min.js  
GET http://watch.dev/my-dashboard/components/circles/circles.js  
GET http://watch.dev/my-dashboard/components/raphael/raphael.js  
GET http://watch.dev/my-dashboard/js/jquery/jquery_ui/jquery-ui.min.js  
GET http://watch.dev/my-dashboard/components/highcharts/highcharts.js  
GET http://watch.dev/my-dashboard/js/bootstrap/bootstrap.min.js 
404 (Not Found)

想法/我的想法.twig

{% extends "layout/my-dashboard-layout" %}

{% block content %}
{% endblock content %}

感谢任何帮助。 404(未找到)

想法/我的想法.twig

{% extends "layout/my-dashboard-layout" %}

{% block content %}
{% endblock content %}

感谢任何帮助。

最佳答案

这不是 ZF 问题,因为 CSS/JS 请求甚至不应该触及 PHP。因为您在布局中使用相对路径,所以浏览器会加载相对于当前 URL 的 CSS 和 JS 文件。例如。当你在 /my-dashboard/ideas 页面时,它正在尝试加载 /my-dashboard/skin/default_skin/css/theme.css (这不是正确的网址)。

要解决此问题,请始终在布局中使用绝对路径,例如:

<link rel="stylesheet" type="text/css" href="/skin/default_skin/css/theme.css">

(注意 href 路径开头的初始斜杠)。这可确保您的 Assets 始终从文档根目录加载。

关于javascript - Zf2 布局 css 和 javascript 路径在子路由上不解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28735016/

有关javascript - Zf2 布局 css 和 javascript 路径在子路由上不解析的更多相关文章

  1. Ruby 解析字符串 - 2

    我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - capybara field.has_css?匹配器 - 2

    我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No

  4. ruby - 用逗号、双引号和编码解析 csv - 2

    我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

  5. ruby-on-rails - 我更新了 ruby​​ gems,现在到处都收到解析树错误和弃用警告! - 2

    简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und

  6. ruby - nanoc 和多种布局 - 2

    是否可以为特定(或所有)项目使用多个布局?例如,我有几个项目,我想对其应用两种不同的布局。一个是绿色的,一个是蓝色的(但是)。我想将它们编译到我的输出目录中的两个不同文件夹中(例如v1和v2)。我一直在玩弄规则和编译block,但我不知道这是怎么回事。因为,每个项目在编译过程中只编译一次,我不能告诉nanoc第一次用layout1编译,第二次用layout2编译。我试过这样的东西,但它导致输出文件损坏。compile'*'doifitem.binary?#don’tfilterbinaryitemselsefilter:erblayout'layout1'layout'layout2'

  7. css - 用 watir 检查标签类? - 2

    我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes

  8. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  9. ruby - 如何使用 Nokogiri 解析纯 HTML 表格? - 2

    我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315

  10. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

随机推荐