【问题标题】:how should my .htaccess file look like so it ignores js files?我的 .htaccess 文件应该如何忽略 js 文件?
【发布时间】:2023-04-05 04:25:01
【问题描述】:

在我尝试将 js 文件注入到视图中之前,我不知道它有什么好笑的:

$this->headScript()->appendFile($this->baseUrl('/js/planilla.js'));
echo $this->headScript();

现在,我正在使用 Zend 框架,当我对 /public/css 文件夹中的任何 css 文件执行相同操作时没有问题,所以我真的不知道问题可能是什么。 js 文件夹和 js 文件确实存在,当我尝试通过浏览器访问它(http://domain.local/js/planilla.js)时,我收到以下错误消息:

异常信息:

消息:指定的控制器无效 (js) 堆栈跟踪:

0 /home/fiodorovich/library/ZendFramework/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))

1 /home/fiodorovich/library/ZendFramework/library/Zend/Application/Bootstrap/Bootstrap.php(97):Zend_Controller_Front->dispatch()

2 /home/fiodorovich/library/ZendFramework/library/Zend/Application.php(366):Zend_Application_Bootstrap_Bootstrap->run()

3 /home/fiodorovich/public_html/gisele/public/index.php(26): Zend_Application->run()

4 {主}

请求参数:

数组 ( '控制器' => 'js', '动作' => 'planilla.js', '模块' => '默认', )

现在我的 .htaccess 看起来像这样:

SetEnv APPLICATION_ENV development
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} (^.*/gisele.local/.*)$  [NC]
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

任何帮助都将受到欢迎和砰砰声,在此先感谢...

编辑:虚拟主机文件

EDIT2:我得到了这个东西。

我必须将此行添加到 application.ini 文件中才能正常工作:

resources.frontController.params.useDefaultControllerAlways = 1

【问题讨论】:

  • 在问题得到回答后删除问题并不是 Stack Overflow 的工作方式。相反,它将保留将来可能对访问者有用的问题。您删除该问题的请求已被拒绝,但我必须指出,您仍然有权自己这样做,但我也建议您反对,除非您认为此问题对 SO 的未来访问者没有任何好处。
  • @lasse 如果有人感兴趣的话,我对这里剩下的问题没有意见。我确实花了很长时间试图弄清楚什么不起作用,但是我在另一个线程中找到了答案:stackoverflow.com/questions/2130530/…。如果您检查一下,您会发现第二个答案实际上响应了我一直在寻找的内容。然而,这个问题没有被选为正确的问题。您在这里待的时间更长,因此知道是否有人会觉得这有帮助。感谢您让我注意到。

标签: zend-framework .htaccess


【解决方案1】:

线

RewriteCond %{REQUEST_URI} (^.*/gisele.local/.*)$  [NC]

看起来很可疑。尝试评论它。 我的 .htaccess 文件看起来像这样。而且绝对可行。

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^(.*)$ index.php [NC,L,QSA]

【讨论】:

  • 如果我评论它,除了索引之外的每一页我都会得到 404
  • 那么,您是否删除了前一行中的“[OR]”?
  • @akmond,它仍然不起作用。我正在用我的虚拟主机副本更新问题
  • 你真的需要多视图吗?
  • 我不知道。我删除了它,但它是一样的
【解决方案2】:

您的 .htaccess 很好。尝试http://domain.local/js/ 并检查您的文件是否仍然存在。

zend 框架将您的 js 目录作为控制器,所以,您的公共目录中的“js”是 css 吗?你也可以试试这个来确定。

RewriteRule ^js(.*)$ – [NC,L]

或者可能是您的环境设置。让我知道会发生什么。

【讨论】:

  • 文件夹在里面,如果我去domain.local/js,我会看到文件。但是当我添加 RewriteRule ^js(.*)$ – [NC,L] 我得到 404 错误
  • @la_f0ka 这意味着您的 htaccess 工作正常。您应该能够通过domain.local/js 导航和打开文件
猜你喜欢
  • 2013-03-21
  • 2011-12-23
  • 2012-09-20
  • 2020-03-14
  • 2019-01-10
  • 2017-02-24
  • 2012-07-15
  • 1970-01-01
  • 2018-06-09
相关资源
最近更新 更多